- 締切済み
すべてのActionScriptを一斉に止める方法
現在作成しているFlashに関してなんですが、いろいろなフレームで繰り返し処理を行うActionScriptを使用しています。 例えば、これらの処理を100フレームに到達した時点ですべて一斉に止めたいと思っているのですが、コマンドで「このフレームですべてのActionScriptの処理を中止する」のようなコマンドはあるのでしょうか? 途中からガラっと内容が変わるFlash(音楽のみ継続)を作成中で、最初の場面では多数のScriptが動いていて、ひとつひとつ止めるのは大変&ちゃんと止まってくれなかった物もあるので、問答無用で全てを止めてくれるコマンドがあったら助かるなぁ思ったので。 辞典などいろいろ見てみたのですが、見つからなかったので無いのかもしれませんが、何か助言等頂けたらと思います。 どうぞよろしくおねがい致します。 ≪使用環境≫ Windows2000 FlashMX2004
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kai123
- ベストアンサー率53% (88/163)
う~ん・・・たぶんないと思いますよ。 では、どうするか?・・・ということで少し解説を・・・。 この場合、その100フレーム目のところにスイッチみたいなものを設けるといいかと思います。 で、「多数のscript」でそのスイッチがONかOFFか判定させてやればいいと思います。 具体例。 たとえば、複数のムービークリップがあって、それらそれぞれのactionscriptで 常に独立の動きをしているとし、あるボタンをクリックすることですべての ムービークリップの動作を止めることができるとします。 たぶん、今回の質問もこれと同じような事だと思われますがどうでしょう? で、これも質問のような命令コマンドがあればすぐできてしますね。 でも、そういう命令コマンドはないので一工夫をします。 まず、命令元のボタンに on (release) {}を使ってクリック時に適当な変数へ停止命令のための語句を代入します。 ここでは、変数をas_conとし停止命令のための語句を"off"としましょう。 これが上で述べた「スイッチ」です。 下記のようになります。 on (release) { _root.as_con = "off"; } 変数の「_root.」はこの変数as_conをFlashの中のどこからでも参照できるようにする ものです。 次にその命令を受け取るムービークリップです。 上の例では複数のムービークリップはそれぞれのスクリプトで常に独立して 動いているということなので、それぞれのムービークリップに onClipEvent(enterFrame){}を用いて記述されているとします。 こんな感じ。 onClipEvent(enterFrame){ ここに動作の命令 } これに、命令を判定するスクリプトを追加します。 判定はifでできます。 こんな感じです。 if (_root.as_con != "off") {} これは、変数as_conが"off"でない場合(!=)は{}内を実行というもの。 つまり、動作命令をこの{}内に記述してあげれば、"off"の時、 この動作命令は実行されません。 ということでonClipEvent(enterFrame){}と合わせるとこんな感じ。 onClipEvent(enterFrame){ if (_root.as_con != "off") { ここに動作の命令 } } これで、ボタンをクリックすると、ムービークリップの動作が止まるというのが できました。 ちょっと、回りくどい説明になりましたが、 命令元がボタンではなくフレームの場合でも同じです。ただ、on (release) {}が なくなるだけです。 また、命令先がムービークリップ内のスクリプトではなくフレームのスクリプトでも 同じです。ただ、onClipEvent(enterFrame){}がなくなるだけです。 といった感じですがどうでしょう?