簡體   English   中英

我的Flash SWF無法檢測到事件。完成

[英]my flash swf cant detect event.COMPLETE

我有一個Flash文件,其中包含2個場景。 第一個場景使用flvplayback連續播放隨機選擇的外部flv文件。 第二個場景包含2個外部swf文件的代碼,一個接一個地播放。 不斷。

但是,它似乎不適用於第二個場景。 它只是不會進入功能。 在這里,我還粘貼了場景2的動作腳本代碼。

stop();

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

stage.loaderInfo.addEventListener(Event.COMPLETE,playnextswf);

function playnextswf(event:Event):void{
    trace("in function");
    removeChild(myLoader);
    var myLoader2:Loader = new Loader();                     
    var url2:URLRequest = new URLRequest("intro.swf"); 
    myLoader.load(url2);                                     
    addChild(myLoader2);    
}

編輯

通過更改以下代碼行,我進行了一些編輯:

- 閱讀進度 - (Event.COMPLETE,playnextswf);

myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,playnextswf);

它似乎跳入功能,但有錯誤。

in function
in function
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
    at flash.display::DisplayObjectContainer/removeChild()
    at praperkahwinan_fla::MainTimeline/playnextswf()

我認為您正在尋找更多:

 var myLoader:Loader = new Loader();                     
 var url:URLRequest = new URLRequest("loader.swf"); 
 myLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, playnextswf );
 myLoader.load(url);                                     
 addChild(myLoader);

您將偵聽器附加到了loaderInfo階段,該階段的工作方式與Adobe不同:

LoaderInfo類提供有關已加載的SWF文件或已加載的圖像文件(JPEG,GIF或PNG)的信息。 LoaderInfo對象可用於任何顯示對象。 提供的信息包括加載進度,加載器的URL和加載的內容,介質的總字節數以及介質的標稱高度和寬度。

正如我們在聊天中討論的那樣,您正在尋找更像這樣的東西:

var myLoader:Loader= new Loader();
myLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, onLoaderComplete );
myLoader.load( new URLRequest( "loader.swf" ) );

var myLoaderSwf:MovieClip;

function onLoaderComplete( e:Event ):void {
    trace( "first swf loaded" );
    myLoaderSwf = e.target.content as MovieClip;
    addChild(myLoaderSwf);
    myLoaderSwf.addFrameScript( insert frame number, loadNextSwf );
    myLoaderSwf.gotoAndPlay(2);
}

function loadNextSwf():void {
    trace( "removing currently loaded swf -- loading next swf" );
    removeChild( myLoaderSwf );
    myLoader = new Loader();
    myLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, onIntroComplete );
    myLoader.load( new URLRequest( "intro.swf" ) ); //change this to intro.swf
}

function onIntroComplete( e:Event ):void {
    trace( "intro swf loaded" );
    myLoaderSwf = e.target.content as MovieClip;
    addChild(myLoaderSwf);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM