- 締切済み
フラッシュのローディングバーでモーショントゥイーンを制御する方法につい
フラッシュのローディングバーでモーショントゥイーンを制御する方法について。 フラッシュのローディングバーを、左から右に伸びる線としてグラフィカルなモーショントゥイーンで作りたいのですが・・全てがロードされる前にトゥイーンが終わってしまうと繰り返されてしまいます、 1フレームから100フレームまでで、読み込みの長さに対して、モーションを制御するaction scriptを書きたいのですが、 誰かご存知の方ご教授お願いします。 開発環境は、CS2です。よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
CS2 とは Adobe が Macromedia 吸収後に Flash 8 を統合した 臨時版 の CS2 Premium パッケージのことでしょうか? それでしたら Flash 8 ですね(多分)。 ローディングバーを ActionScript で伸ばすにしてもモーショントゥイーン で伸ばすにしてもどっちにしても ローディングバーは メインタイムラインのフレーム1や2などの最初の方に配置したムービークリップであるのが通常です。 コンポーネントである場合もありますが, コンポーネントも結局はムービークリップの一種なので 何にしてもローディングバーはムービークリップ(またはムービークリップ内タイムライン)で作成するのが普通です。 ですから >左から右に伸びる線としてグラフィカルなモーショントゥイーン も ムービークリップ内のタイムラインを使ったモーショントゥイーンにします。 またモーショントゥイーンを作成するのでしたら ムービークリップ内のタイムラインは 100フレーム の倍数 または 100フレーム の倍数+1 フレーム にしておくと計算がしやすいです, モーショントゥイーンをムービークリップ内の 1~101 の 101フレームで作成したとします。 その場合 そのムービークリップを ムービーをロードした割合のパーセンテージを四捨五入した整数のフレーム数に gotoAndStop(); すれば良いということになります。 その 1~101 の 101フレームで伸びる線を作成したムービークリップを メインのタイムラインのフレーム1のみに配置して そのムービークリップにのインスタンス名を付けます。 仮に 「loading_mc」 というインスタンス名を付けたとします。 その場合, 「loading_mc」 を配置したメインのタイムラインのフレーム1に書くスクリプト例↓。 ------------------ //_rootの再生を停止 _root.stop(); //loading_mc内の再生を停止 loading_mc.stop(); //loading_mcに毎フレーム実行するメソッドを定義 loading_mc.onEnterFrame = function():Void { //ロードされたバイト数を取得 var loaded:Number = _root.getBytesLoaded(); //トータルのバイト数を取得 var total:Number = _root.getBytesTotal(); //ロードされたパーセンテージを取得 var percent:Number = loaded / total * 100; //もし percent が 100 よりも小さい場合 if (percent < 100) { //_rootの再生を停止 _root.stop(); //loading_mc内を //パーセンテージ数の整数+1 フレームに進めて停止 loading_mc.gotoAndStop(Math.round(percent) + 1); } else { //この毎フレーム実行するメソッドを削除(念のため) delete loading_mc.onEnterFrame; //_rootの再生を開始 _root.play(); } }; ------------------ 「制御」→「ムービープレビュー」の 「表示」→「ダウンロードのシミュレート」より動作確認。