メイン 迷える子羊の部屋【初心者専用】 AS3.0 swfを順番に再生したい | 投稿するにはまず登録を |
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
yonetom | Åê¹ÆNo.45344 投稿日時: 2010-7-24 16:01 |
新米 居住地: 投稿: 3
使用環境:
|
AS3.0 swfを順番に再生したい 連番の外部swfをロードして順番に再生させたいと思っています。いろいろ探したのですが、AS3で良い資料がなく、こちらを使用させていただきます。
出来上がりのイメージとしては *1.swfを再生(次のswfを読み込む)↓ *1.swfの再生が終了(swf内の最終フレームstop();まで再生)↓ *2.swfを再生(次のswfを読み込む).... としたいと思っています。 以下、ソースです。 ============= package { import flash.display.DisplayObjectContainer; import flash.display.MovieClip; import flash.display.Loader; import flash.display.LoaderInfo; import flash.net.URLRequest; import flash.events.Event; import flash.events.ProgressEvent; import flash.events.IOErrorEvent; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; public class ImageLoader2 { var container:DisplayObjectContainer; var imgHolder:MovieClip; var imgLoader:Loader; //var nextImgLoader:Loader; var perFld:TextField; var load_mc:MovieClip; var correntNo:int = 0; var frameNo:Number = 1; var urlList:Array; //コンストラクタ function ImageLoader2 (container:DisplayObjectContainer,urlList:Array) { this.container = container; //ステージセンター var posX:Number = 0;//container.stage.stageWidth / 2; var posY:Number = 0;//container.stage.stageHeight / 2; //イメージを読み込むコンテナを作る imgHolder = new MovieClip(); imgHolder.x = posX; imgHolder.y = posY; container.addChild (imgHolder); //%表示フィールド setupPercentField (posX, posY); //loader作成 imgLoader = new Loader();// Loaderオブジェクトの生成 imgHolder.addChild (imgLoader); imgLoader.contentLoaderInfo.addEventListener (Event.INIT, onInit); imgLoader.contentLoaderInfo.addEventListener (Event.COMPLETE,onLoaded); imgLoader.contentLoaderInfo.addEventListener (ProgressEvent.PROGRESS, onProgress); imgLoader.contentLoaderInfo.addEventListener (IOErrorEvent.IO_ERROR, onIOerror); container.addEventListener (Event.ENTER_FRAME, nextMovie); //URL var urlReq:URLRequest = new URLRequest(urlList[correntNo]); //読み込み開始 imgLoader.load (urlReq); } function onInit (event:Event):void { // リスナーメソッドonInit()の定義 // ロードしたSWFへの参照をMovieClipに型変換 load_mc = MovieClip(imgLoader.content); imgHolder.addChild (load_mc);// load_mcを表示リストに追加 load_mc.gotoAndPlay (frameNo++);// 再生開始 //次の動画を読み込む correntNo++; //URL var urlReq:URLRequest = new URLRequest(urlList[correntNo]); //読み込み開始 imgLoader.load (urlReq); } function nextMovie (event:Event):void { //新しいフレームに来たら load_mc.gotoAndPlay (frameNo++);// 再生開始 //次の動画を読み込む correntNo++; //URL var urlReq:URLRequest = new URLRequest(urlList[correntNo]); //読み込み開始 imgLoader.load (urlReq); } //読み込み完了 function onLoaded (event:Event):void { //プログレスフィールド削除 container.removeChild (perFld); perFld = null; } //途中経過 function onProgress (event:ProgressEvent):void { var per:Number = Math.round(event.bytesLoaded / event.bytesTotal * 100); perFld.text = per + " %"; } //エラー処理 function onIOerror (event:IOErrorEvent):void { trace ("IO_ERROR= "+event.text); } //%フィールド作成 function setupPercentField (posX:Number, posY:Number):void { perFld = new TextField(); perFld.width = 100; perFld.x = posX - perFld.width / 2; perFld.y = posY - perFld.height / 2; perFld.autoSize = TextFieldAutoSize.CENTER; var textFormat:TextFormat = new TextFormat(); textFormat.font = "_ゴシック"; textFormat.size = 48; perFld.defaultTextFormat = textFormat; container.addChild (perFld); } } } ============= 最初タイマーで制御していたのですが、swfの長さが違うことからswf自体の終了判定ができないものかと...思ったのですがどうやらそういう機能がない?という事になりまして、タイムラインでうまく制御できないかと考えています。 以上よろしくお願い致します。 |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» AS3.0 swfを順番に再生したい | yonetom | 2010-7-24 16:01 |
Re: AS3.0 swfを順番に再生したい | mayor | 2010-7-24 16:36 |
Re: AS3.0 swfを順番に再生したい | yonetom | 2010-7-25 16:08 |
Re: AS3.0 swfを順番に再生したい | yonetom | 2010-7-26 22:32 |
投稿するにはまず登録を | |