![](/img/trans.png)
[英]how to get back the loader after Event.COMPLETE with my code? (as3, flash)
[英]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.