A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
カレンダー作りの難しさや手間など全体を 1000 だとすると,
ご質問されている部分の手間や難しさは 1 くらいになります。
ココで説明できるのもその 1 くらいですから,質問としては良いのですが,
その先ができるのかどうかはわかりません。
> どのようなアクションスプリクトで、
> どのように書いたらいいのかわからないので、
たっくさんあります。
結局,思った場所に思った画像を表示させればいいだけです。
思いついたものだけを,大きく分類しても次のようなものがあります。
・タイムラインを動かす
→gotoAndStop()
・ムービークリップのタイムラインを動かす
→MovieClip.gotoAndStop()
・画像入りムービークリップの表示・非表示を変える
→MovieClip._visible プロパティ
・画像入りムービークリップの不透明度を変える
→MovieClip._alpha プロパティ
・JPEGなどを外部からロードする
→loadMovie() or MovieClip.loadMovie()
・同じくJPEGなどを外部からロードする
→MovieClipLoader.loadClip()
・ライブラリからムービークリップを呼びだす
→MovieClip.attachMovie()
・ライブラリからビットマップイメージを呼びだす
→MovieClip.attachBitmap()
・全ての画像入りムービークリップをスライドさせる
→MovieClip._x or MovieClip._y を変える
・HTMLレンダリングしたテキストフィールドに画像を表示
→TextFleld.htmlText = "<img>○○</img>";
・ScrollPaneコンポーネントに画像を表示させる
→ScrollPane クラス
… などなど …
とりあえずカレンダーに限らず Flash で一般的によく使われて,
これくらいはできておかなければならない,
・ムービークリップのタイムラインを動かす
→MovieClip.gotoAndStop();
の方法はいかがでしょうか?
新規ドキュメント(FLA)を作成し,
「0」の絵または写真などを用意して,
ムービークリップに変換します。
そのムービークリップをダブルクリックするなどして,
そのムービークリップ内の編集に入り,
フレーム1 に 「0」 の絵
フレーム2 に 「1」 の絵
フレーム3 に 「2」 の絵
フレーム4 に 「3」 の絵
… …
フレーム5 に 「9」 の絵
という 10フレーム のムービークリップを作成します。
ムービークリップ内のタイムライン(レイヤー)
レイヤー ・・・|●|●|●|●|●|●|●|●|●|●|
0 1 … … … … 9
ここまでできましたら,
ステージ上の何も無い所をダブルクリックするなどして,
シーン1 など メインムービー(_root) の編集に戻ります。
そして,
上で作成したムービークリップ(「0」の絵だけが見えているはず)を選択して,
コピー&ペースト で 4つ と 2つ の合計6個を横に並べます。
「0」 「0」 「0」 「0」 「0」 「0」
各ムービークリップを1つずつ選択して,
ステージ下などにあるプロパティインスペクタでインスタンス名を付けます。
インスタンス名は何でも良いのですが,
たとえば
左から順に「y_mc0」 ,「y_mc1」 ,「y_mc2」 ,「y_mc3」 と 「m_mc0」 ,「m_mc1」 というインスタンス名を付けることにします。
「0」 「0」 「0」 「0」 「0」 「0」
y_mc0 y_mc1 y_mc2 y_mc3 m_mc0 m_mc1
そして,
メインタイムライン(_root)にレイヤーを1つ追加して,
追加したレイヤーのフレーム1の空白キーフレームに次のようなスクリプトを書きます。
-----------------------------------------------
// Dateオブジェクト myDate を作成
myDate = new Date();
// 変数 myY に年を取得
myY = myDate.getFullYear();
// 変数 myM に月(0~11)に1を足した数を取得
myM = myDate.getMonth()+1;
// 年のムービークリップをそれぞれのフレームに進めて停止
for (i=0; i<=3; i++) {
this["y_mc"+i].gotoAndStop(Number(String(myY).substr(i, 1))+1);
}
// m_mc0 をその月の下2桁目のフレームに進めて停止
this.m_mc0.gotoAndStop(Number(("0"+myM).substr(-2, 1))+1);
// m_mc1 をその月の下1桁目のフレームに進めて停止
this.m_mc1.gotoAndStop(Number(("0"+myM).substr(-1, 1))+1);
-----------------------------------------------
ご質問では,
Flash や ActionScript のバージョンを書かれていませんね。
上のスクリプトは,
Flash 5 以上で使用できるスクリプトです。
ActionScriptのバージョンは 1.0 です。
○○.gotoAndStop(Number(String(myY).substr(i, 1))+1);
などがわからない場合は中から順に考えてみてください。
String(myY)
→ 数 2008 を,文字列 "2008" にする。
String(myY).substr(i, 1)
→ 文字列 "2008" から i 番の文字を1文字取ってくる
(文字列番号は 0 が 1文字目です。)
("2008" では 0番が2,1番が0,2番0,3番が8 です。)
Number(String(myY).substr(i, 1))
→ 文字列 "2008" の i 番文字を数値に変換
("2" を 2,"0" を 0, "0" を 0, "8" を 8 に変換)
Number(String(myY).substr(i, 1))+1
→ 文字列 "2008" の i 番文字を数値に変換したものに1を足す
(ムービークリップのフレーム1は0の絵,フレーム2はの絵1,…ですよね。)
gotoAndStop(Number(String(myY).substr(i, 1))+1)
→ 文字列 "2008" の i 番文字を数値に変換したものに
1を足したフレームに gotoAndStop()
年に関しては,for文を使用していますが,
大した行数ではないので,
次のように1文字につき,1行ずつ書いても良いです。
-------------------------------------------------
// 年のムービークリップをそれぞれのフレームに進めて停止
for (i=0; i<=3; i++) {
this["y_mc"+i].gotoAndStop(Number(String(myY).substr(i, 1))+1);
}
-------------------------------------------------
↓同じ意味↓
-------------------------------------------------
// 年のムービークリップをそれぞれのフレームに進めて停止
this.y_mc0.gotoAndStop(Number(String(myY).substr(0, 1))+1);
this.y_mc1.gotoAndStop(Number(String(myY).substr(1, 1))+1);
this.y_mc2.gotoAndStop(Number(String(myY).substr(2, 1))+1);
this.y_mc3.gotoAndStop(Number(String(myY).substr(3, 1))+1);
-------------------------------------------------
月の2文字も同様に考えれば良いと思います。
/////////////////////////////////////////////////////////
上に書いた方法についても少しだけ触れておきます。
・タイムラインを動かす
→gotoAndStop()
これでは,
2008年09月 フレーム
2008年10月 フレーム
2008年11月 フレーム
2008年12月 フレーム
2009年01月 フレーム
… …
と用意しなければならないため,ちょっと(かなり)大変です。
また場合によっては不可能な状況になりますから,
これよりは上の MovieClip.gotoAndStop() の方が良いと思います。
・画像入りムービークリップの表示・非表示を変える
→MovieClip._visible プロパティ
これは,
「0」から「9」という10個のムービークリップ(各ムービークリップ内は1フレームのみ)を用意して,
それを重ねて配置し,
該当年や月のムービークリップだけを表示させるという方法です。
その他も,結局同じような感じで考えて行けばできます。
この年や月の数字画像を表示することよりも,
カレンダー本体の方が難しいですよ。
また,ココでは説明できないと思います。
この回答へのお礼
お礼日時:2008/09/07 16:29
BlurFiltan様
丁寧な解説ありがとうございます!
アドバイスとても助かりました。
MovieClip.gotoAndStop() でチャレンジしてみます。
本当にアドバイスありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FLASHでゲームを作っていた人は...
-
potplayerについて質問です
-
スマホでサイトの画像を長押し→...
-
VBAのコンボボックスの年月表示...
-
uwscでExcelに自動記入
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
flashのActionscriptについて
-
Flashで一部レイヤーだけループ...
-
ムービークリップの再生速度
-
ラジオボタンの作り方
-
ロールオーバーと逆の動き
-
ニュースティッカーの作り方
-
flashでスライド式メニューを作...
-
ページ移動する間にMCのアクシ...
-
逆戻りするアクションスクリプ...
-
ボタンの重ね順
-
FLASH 外部ファイル(画像)を使...
-
actionscript2.0でMCの切り替え...
-
Flashでの連打ゲームの作成方法...
-
Flash Lite 1.1で、複数のMCをA...
-
画面全体にマスク
-
Flashでタイムライン表示割合を...
-
スライドの表示時間(8 profe...
-
FLASH道場のカウントダウンにつ...
-
◆◆クイズ・ゲームのスコアを集...
-
Flashのスライドショーについて...
おすすめ情報