【问题标题】:as3 totalFrames return 1as3 totalFrames 返回 1
【发布时间】:2016-04-17 20:45:52
【问题描述】:

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

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

【问题讨论】:

  • mc 在您的 enterFrameListener 中将引用您发布的代码的范围。您要检查的是您加载的影片剪辑的 currentFrame 和 totalFrames 可能是 myLoader.content.totalFrames
  • 你是正确的。当我尝试 myLoder.content.totalframes 它大于 25 时,thnx

标签: actionscript-3 flash frames


【解决方案1】:

您使用的当前目标是指

addEventListener(Event.ENTER_FRAME , enterFrameListener );

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

正如 BadFeelingAboutThis 所说,只需替换:

var mc:MovieClip = event.currentTarget as MovieClip;

通过

var mc:MovieClip = myLoader.content as MovieClip;

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

【讨论】:

    猜你喜欢
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 2015-03-04
    • 2013-10-27
    相关资源
    最近更新 更多