我有一个包含2个场景的flash文件。 第一个场景使用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()
答案 0 :(得分:1)
我认为你正在寻找更多:
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文件或a的信息 加载的图像文件(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);
}