2017-08-08 4 views
2

私は現在adobe flash cc 2014で作業しており、約5000フレームのアニメーションを含む1つの.swfファイルをロードしています。そして、このロードされたファイルの再生が終わったら、次のシーンに行きたいです。ロード後の次のシーンへの移動方法swf as3での再生cc

これは私が持っているコード、単純なローダコードです:

stop(); 
var myLoader:Loader = new Loader(); 
var url:URLRequest = new URLRequest("jenissendi.swf"); 
myLoader.load(url); 
addChild(myLoader); 

、私はこのコードに何をすべきでしょうか? 私はまだここで初心者であるので、誰かが私に簡単なステップを与えることができます

ありがとう。初心者を混乱させることが

+0

次のシーンは、メインの.flaファイルの次のシーンを意味します –

+0

あなたはそれを把握しましたか? – BadFeelingAboutThis

答えて

0

事についてローダークラスは、ロード処理に関連するイベントは、ローダーではなく、ローダー自体に添付たLoaderInfoオブジェクトから派遣されていることです。

stop(); 

var myLoader:Loader = new Loader; 
var url:URLRequest = new URLRequest("jenissendi.swf"); 

myLoader.contentLoaderInfo.addEventListener(Event.INIT, onInit); 
myLoader.load(url); 

addChild(myLoader); 

function onInit(e:Event):void 
{ 
    nextScene(); 
} 
0

まず、あなたのコンテンツが、それは負荷だ完了したときをリッスンする必要があります - あなたはコンテンツがそれまで持っているどのように多くのフレームを知ることができませんよう。

次に、ロードされたコンテンツのタイムラインがいつ再生されたかを把握する必要があります。

次は、何が起こっているのかを説明するコメントを含むコード例です。

stop(); 
var myLoader:Loader = new Loader(); 
var url:URLRequest = new URLRequest("jenissendi.swf"); 

//before you load, listen for the complete event on the contentLoaderInfo object of your loader 
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, contentLoaded, false, 0, true); 

myLoader.load(url); 
addChild(myLoader); 

//this function runs when the content is fully loaded 
function contentLoaded(e:Event):void { 
    var loadedSwf:MovieClip = myLoader.content as MovieClip; //this is the main timeline of the loaded content 
    loadedSwf.addFrameScript(loadedSwf.totalFrames - 1, contentFinished); 
    //the line above tells the movie clip to run the function 'contentFinished' when it reaches the last frame. 
} 

//this function runs when the loaded content reaches it's last frame 
function contentFinished():void { 
    //clean up to avoid memory leaks 
    removeChild(myLoader); 
    loadedSwf.addFrameScript(loadedSwf.totalFrames - 1, null); 

    nextScene(); 
} 

addFrameScriptには微妙な違いがあります。まず、フレーム番号を0として読み込むことです。つまり、最初のフレームはフレーム0です。そのため、最後のフレームを取得するために、合計フレームから1を引いています。次に、addFrameScriptはドキュメント化されていない機能です。これは、将来、Flash Player/AIRリリースがもう動作しなくなる可能性があることを意味します。 メモリリークを防ぐために、(関数としてnullを渡すことによって)フレームスクリプトを削除することも非常に重要です。

関連する問題