我已经做了一百万次,但由于某种原因它现在拒绝工作。
我制作了一个电线的MovieClip,它有3个不同的关键帧,每个关键帧之间有几帧。前两个关键帧每个都有一个位图,每个关键帧都有不同的图片,我希望它在这两个之间循环,让它看起来就像电流在移动而不只是坐在那里。第三个关键帧没有任何东西,最终我将关闭电源的图像,所以玩家可以走过,我还没有完成它。因为我不希望它在播放器关闭之前运行最后一个关键帧,所以我放了一个gotoAndPlay();在第二帧循环回到第一帧后,在影片剪辑中命令,问题是,该行拒绝工作。我已经从它工作的其他程序中复制并粘贴了它,我已经检查了Frame Name,我把其他行放在那里,比如stop();跟踪();和其他东西,但无法获得任何代码行在MovieClip中工作。可能有类似“图层不可见,代码无法运行”,但我无法分辨它是什么。我删除了符号并重新开始,同样的问题。我重新启动Flash,同样的问题。我重新启动了电脑,同样的问题。我甚至把它带到了另一台电脑,同样的问题。我不知道为什么它不会运行这段代码,是否有一些我忽略的禁用它?我在影片剪辑之外的主时间轴中有其他代码,其他影片剪辑中的代码一直工作正常并继续正常工作,我看不出问题所在。
我暂时忽略了这个问题,并在其他方面工作,但我不得不在现有的动画片段中添加多个帧(我相信它是在另一个之前创建的),现在这个动画片段也有同样的问题。有没有人知道如何解决这个问题,然后再传播到其余部分?
我会发布一些代码,但实际上并没有考虑到我需要工作的只有一两行,而且我可以在这里复制并粘贴MovieClip。
提前感谢您的帮助。
答案 0 :(得分:0)
非常奇怪,虽然你可以使用它作为你的MovieClip的基类,这应该是一种享受:
package
{
import flash.display.MovieClip;
import flash.events.Event;
public class Elec extends MovieClip
{
// vars
private var _prevFrame:uint = 1;
/**
* Constructor
*/
public function Elec()
{
addEventListener(Event.ENTER_FRAME, _handle);
}
/**
* Event.ENTER_FRAME
*/
private function _handle(e:Event):void
{
if(_prevFrame == 2) gotoAndPlay(1);
_prevFrame = currentFrame;
}
}
}