展开电报 return 1

as3 totalFrames return 1

我正在尝试加载一个动画。
我想知道动画的结尾并避免循环。

var myLoader:Loader = new Loader( );
var myLoaderReq:URLRequest = new URLRequest("anim.swf");
myLoader.load(myLoaderReq);
addEventListener(Event.ENTER_FRAME , enterFrameListener );
addChild(myLoader);

myLoader.x = 10;
myLoader.y = 20;


function enterFrameListener(event:Event):void
{
  var mc:MovieClip = event.currentTarget as MovieClip;

  trace(mc.currentFrame);
  if( mc.currentFrame == mc.totalFrames )
  {
      mc.removeEventListener(Event.ENTER_FRAME , enterFrameListener );
      trace("end of movie reached");
  }
}

为了测试,我使用从 http://www.leconcombre.com/movies/movies1us.html

下载的 swf

有什么想法吗?

thnx

您使用的currentTarget是指

addEventListener(Event.ENTER_FRAME , enterFrameListener );

这应该是您的 MainTimeline,如果您再添加一帧,那么应该是 return 2 of totalFrames。

正如 BadFeelingAboutThis 所说,只需替换:

var mc:MovieClip = event.currentTarget as MovieClip;

来自

var mc:MovieClip = myLoader.content as MovieClip;

您还必须确认您正试图操纵 anim.swf 的 MainTimeline。