
Flash Professional CS6でスクリーンセーバーを制作しています。
「春」「夏」「秋」「冬」と季節ごとに変化するものを作りたいのですが、作り方が分かりません。
もっと細かく説明すれば
「3月・4月・5月」→桜が舞うスクリーンセーバーを表示
「6月」→雨が降るスクリーンセーバーを表示
「7月・8月」→緑葉が舞うスクリーンセーバーを表示
「9月・10月・11月」→紅葉が舞うスクリーンセーバーを表示
「12月・1月・2月」→雪が降るスクリーンセーバーを表示
「桜」「雨」「緑葉」「紅葉」「雪」のアニメーションは既に完成しています。
(ActionScript 3.0使用・別々のflaファイルとして保存してあります)
それらを1つのファイルに合体させて、ActionScript 3.0で季節ごとに表示を自動で切り換えるスクリプトを書きたいです。
ActionScript 3.0で時間を組み込む方法、ご教授宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
もし Flash(SWFファイル) をネットにアップする場合でしたら
その作成されているFlash(SWFファイル)自体の
ロード待ち処理などを考えたりしなければならないため
下に書く方法が適切とは言えない場合も出てきますが
スクリーンセーバーは基本的にローカルファイルですから
下に書くような方法で良いのではないかと思います。
まず,下に書く内容の大まかな骨子を書きますが
全体的には
「各季節(5季節)を別々のシーンに配置して
月によって再生させるシーンを変える。」
ということをすれば良いのではないかということです。
新規ドキュメントファイル(FLAファイル)を作成して
そのドキュメント内に「桜」「雨」「緑葉」「紅葉」「雪」のアニメーションをつないで行くのですが
そのときに各アニメーションをシーンごとに分けてコピペします。
新規ドキュメントを作成すると
メインのタイムライン(の「シーン 1」)が見えるわけですが
「挿入」→「シーン」で「シーン 2」~「シーン 6」の5つのシーンを挿入します。
そして
「シーン 2」のタイムラインには「桜」
「シーン 3」のタイムラインには「雨」
「シーン 4」のタイムラインには「緑葉」
「シーン 5」のタイムラインには「紅葉」
「シーン 6」のタイムラインには「雪」
の各タイムラインをコピペします。
ドキュメントファイル内でのシーン移動は
ステージの上にあるバーの右の方にある
「ガチンコ」アイコンをクリックすればできると思います。
アニメーションのコピペは
作成した各アニメーションのタイムラインの全てのレイヤーとフレームをドラッグで選択して
右クリックなどより「フレームをコピー」を選択し
ペーストしたいシーンのフレーム1を選択して
右クリックなどより「フレームをペースト」を選択すればできると思います。
・参考↓
「アニメーション作成の手抜きテクニック:ITpro」
http://itpro.nikkeibp.co.jp/article/COLUMN/20060 …
→「フレーム全体をコピーする」の項目
各アニメーションFLAに
シンボル名が同じシンボルがあると
コピペするときに厄介なことが起こって困るので
各アニメーションFLAのシンボル名は違うものにしておいた方が良いと思います。
(例:「桜シンボル1」,「紅葉シンボル1」など)
そして
何も配置していない 「シーン 1」のフレーム1を選択して
次のようなスクリプトを書きます。
//----------------------------------------------
//今現在の Date インスタンス my_tade を作成
var my_date:Date = new Date();
//my_date から 月番号(0~11) を取得
var month_num:int = my_date.getMonth();
//もし月番号が2~4であれば(3~5月であれば)
if (month_num >= 2 && month_num <= 4) {
//シーン 2 の フレーム1 から再生
gotoAndPlay(1,"シーン 2");
//もし月番号が5であれば(6月であれば)
} else if (month_num == 5) {
//シーン 3 の フレーム1 から再生
gotoAndPlay(1,"シーン 3");
//もし月番号が6または7であれば(7または8月であれば)
} else if (month_num == 6 || month_num == 7) {
//シーン 4 の フレーム1 から再生
gotoAndPlay(1,"シーン 4");
//もし月番号が8~10であれば(9~11月であれば)
} else if (month_num >= 8 && month_num <= 10) {
//シーン 5 の フレーム1 から再生
gotoAndPlay(1,"シーン 5");
//もし月番号が上記以外であれば(12または1または2月であれば)
} else {
//シーン 6 の フレーム1 から再生
gotoAndPlay(1,"シーン 6");
}
//----------------------------------------------
これで
月によって違うシーンの冒頭にジャンプするようになります。
しかしこれだけでは
ムービー全体がループ再生されてしまうので
各シーンの最終フレームにキーフレームを作って
次のように書いて行きます。
//---「シーン 2」の最終フレーム---------
//シーン 2 の フレーム1 から再生
gotoAndPlay(1,"シーン 2");
//--------------------------------------
//---「シーン 3」の最終フレーム---------
//シーン 3 の フレーム1 から再生
gotoAndPlay(1,"シーン 3");
//--------------------------------------
他のシーンの最終フレームも同様に…。
==========================
結局のところ,
new Date() で Date インスタンスを作成して
getMonth() メソッド で月番号を取得し
その月番号によって動作を変えれば良いのです。
シーンを使うと
そんなに難しい知識は要りませんし説明も簡単であるため
各季節のアニメーションを各シーンに用意する方法を書きましたが
別にシーンを使わなくても良いのです。
例えば
5つの ムービークリップを用意して
そのムービークリップ内のタイムラインに
各季節のアニメーションを用意して
月番号によって表示させるムービークリップを変えても良いわけです。
もしそういう方法を使うとすれば
インスタンス名とか階層とか場合によってはクラスとか
そういうものの概念などの理解も必要になってきたり
説明も難しくなってくるのでシーンで説明しただけです。
余裕があったり,
違うものを作る機会があれば,
色々な方法を考えてチャレンジしてみるのも良いかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
uwscでExcelに自動記入
-
パソコンのリカバリーについて
-
スマホでサイトの画像を長押し→...
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
-
Flashplayerの運用について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シーンに関してふたつ質問があ...
-
ActionScript■MC内の動作はシー...
-
Unityでこういう場合のプログラ...
-
ボタン押して変数を代入したい。
-
Flash4で、シーンをまたいでB...
-
ストリーミングでシーンごとに...
-
シーンの分割方法
-
シーン1から元のタイムラインに...
-
パソコンのオープンフレームっ...
-
段ボールみたいな材質でできて...
-
フレーム内に移動したい
-
フレーム内のオプションボタン...
-
条件が複数ある場合のif文の書き方
-
外部swfファイルを予め読み込ん...
-
phpで音を鳴らす
-
Flash4でloadMovieの完了を知る...
-
A3012CAのカメラ用フレ...
-
文字の入力が突然出来なくなり...
-
違うフレームに表示
-
パワーポイント2007です。画面...
おすすめ情報