繁体   English   中英

gotoAndPlay无法用于外部加载的SWF

[英]gotoAndPlay not working for externally loaded SWF

我有一个外部SWF,它是角色动画。 我成功加载了它并将其存储在MovieClip变量中,并将其添加到舞台上。 它从第0帧开始播放,并且一切正常,但是我无法启动gotoAndPlay或gotoAndStop。 我可以找出MovieClip的currentFrame,因此可以访问时间线。 使用gotoAndPlay或gotoAndStop时,我没有看到任何Flash错误,只是对MovieClip不做任何事情。

我无所适从,但为什么一切都会起作用。 任何提示,不胜感激。

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, LoaderComplete);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, LoaderError);
loader.load(new URLRequest("file.swf");

private function LoaderComplete(e:Event):void 
{
    var character:MovieClip = e.target.content as MovieClip;
    stage.addChild(character);
    character.gotoAndStop(10);
}

我认为所加载的swf文件的主要时间轴不是您的角色,这就是为什么始终获取currentFrame 1

//This line of code, gives you reference on main timeline
var mainTimeline:MovieClip = e.target.content as MovieClip; 
//Check if there is character
//If I'm correct, numChildren will return 1 or more
trace(mainTimeline.numChildren);
//If yes, access character animation
//Like this:
var char: MovieClip = mainTimeline.getChildAt(0) as MovieClip;
char.gotoAndStop(10);

可能是您将其添加到舞台上的那一刻,它不知道具有多个框架。 尝试侦听add_to_stage事件,然后转到框架,例如:

private function LoaderComplete(e:Event):void 
{
  var character:MovieClip = e.target.content as MovieClip;
  stage.addChild(character);
  character.addEventListener(Event.ADDED_TO_STAGE, gotoTheFrame);
}

private function gotoTheFrame(e:Event){
  var target:MovieClip = MovieClip(e.target);
  target.gotoAndStop(10);
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM