- ベストアンサー
AS3.0 イベントリスナーについて
- AS3.0 イベントリスナーを使って外部swfの再生が終わったら指定のフレームに移動する方法を教えてください。
- AS3.0 イベントリスナーを使用して外部swfの再生終了時に特定のフレームに移動する方法を教えてください。
- AS3.0 イベントリスナーを活用して外部swfの再生が終わったら指定のフレームに遷移する方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ご質問で書かれていらっしゃるような状態を検知して イベントを発動するようなイベントリスナーは存在しませんよ。 したがって自分で状態を見張って動作を発生させるしくみを作る必要があります。 とりあえず Loader内 にロードされた 子SWF についてですが この 子SWF を 親SWF から見れば Loader の content プロパティになります。 Loader.content です。 ご質問の場合 yomu が Loader ですから つまり yomu.content で参照できるということになります。 しかし その yomu.content をそのまま参照すると DisplayObject として扱われてしまうため MovieClip に変換する必要があります。 MovieClip(yomu.content) この 子SWF である MovieClip(yomu.content) の再生フレームを取得して その再生フレームが最終フレームになれば 親SWF の再生を開始させれば良いということですよね。 ですからスクリプト(例)は次のようになります↓。 //------------------------------------ //このフレームで再生を停止 stop(); //※次の4行はご質問で書かれていらっしゃる内容 var riku:URLRequest = new URLRequest("logoAnime.swf"); var yomu:Loader = new Loader(); yomu.load(riku); openingMc.addChild(yomu); //関数 watchLogoFrame を毎フレーム実行 addEventListener(Event.ENTER_FRAME,watchLogoFrame); //関数 watchLogoFrame の定義 function watchLogoFrame(e:Event):void { //もしロードしたSWFが null ではなくて if (yomu.content != null) { //もし ロードしたSWF の再生フレームが最終フレームになれば if (MovieClip(yomu.content).currentFrame == MovieClip(yomu.content).totalFrames) { //関数 watchLogoFrame の毎フレーム実行をやめる removeEventListener(Event.ENTER_FRAME,watchLogoFrame); //フレーム2から再生開始 gotoAndPlay(2); } } } //------------------------------------ 上記スクリプトの //フレーム2から再生開始 gotoAndPlay(2); この部分は //フレーム2で再生停止 gotoAndStop(2); かもしれませんし //再生開始 play(); で良いかもしれません。 この辺は適当に変えてもらえば良いと思います。