我正在创建游戏,在主类中我声明了变量:public var attack:Number = 0;
这是动态值(总是在变化),我需要在时间轴的最后一个动画帧中将它设置为0。
当我尝试在最后一帧中使用attack=0
时,我收到错误:1120: Access of undefined property attack.
感谢您的回答。
答案 0 :(得分:1)
您也可以使用事件:
在你的最后一帧:
dispatchEvent(new Event("lastFrameCustomHandler", true, true));
代码:
addEventListener("lastFrameCustomHandler", handleLastFrame);
function handleLastFrame (event:Event):void
{
attack = 0;
}
答案 1 :(得分:0)
尝试使用主要课程中的addFrameScript
:
asset.addFrameScript( asset.totalFrames-1, function():void { attack = 0; } );
详细说明addFrameScript()
如何工作,无论何时从库中编译MovieClip
,如果你没有将类与它相关联,编译器会在幕后为你创建一个。 addFrameScript()
是MovieClips时间轴和相关脚本之间的未记录的绑定。当您在addFrameScript()
上运行MovieClip
时,请使用参数( frameNumber - 1, functionToCall )
对其进行设置。您的MovieClip时间轴从第1帧开始,但在引用时这实际上是作为第0帧读取的(类似于存储容器从索引0开始的工作方式)。
在我的例子中,我传递了所谓的匿名函数。我为addFrameScript()
中的函数参数创建了一个函数,当我们到达指定的帧时,它会将变量攻击设置为0。当然,你不必这样做。假设你有一个功能:
function setAttackToZero():void {
attack = 0;
}
您可以轻松地将其传递到addFrameScript参数:
asset.addFrameScript( asset.totalFrames-1, setAttackToZero );