我是Flash的新手,所以开始玩一个非常标准的代码示例:一个图层包含一个带有飞行矩形的影片剪辑,另一个图层有一个用于控制它的按钮。所有脚本代码都在Main.as文件中。矩形在Property窗口中命名为square1。
问题是:Main的构造函数有一行: square1.stop(); 防止剪辑播放,但它没有帮助 - 它播放。我知道构造函数会触发,因为它中有跟踪(“stuff”)。代码确实检查了舞台是否已创建。
有点奇怪的是,square1.currentFrame总是返回1,而square1.totalFrames也返回1。该图层在时间轴上有24帧。我尝试了只有2个关键帧的补间,然后将整个补间转换为帧 - 相同的结果。我的意思是,事情在我眼前飞舞,怎么可能是1帧???
我甚至添加了一个听众: square1.addEventListener(Event.ENTER_FRAME,onFrameChange); 事件始终触发,即帧更改,但currentFrame仍为1.
此外,尝试命名单个帧并使用square1.gotoAndStop(“begin”)和类似的东西。什么都没有帮助。我真的很担心这个愚蠢的问题。
答案 0 :(得分:0)
您的矩形(square1)只有一个框架。它只是一个rectagnle(没有修改,孪生等...)。从库中打开它并查看其时间轴。
此对象放置在另一个MovieClip(例如“main”)的时间轴上。只有那个剪辑有几个帧,但不是square1。你应该停止“主”框架,比如this.stop()。或者您可以创建一个新的MovieClip(“movingSquare”),其中包含一个包含移动方块的帧,并将其放在“主”舞台上。你将有一个下面的遏制通道:“主要场景”(可能只有一个框架) - > “movingSquare”(带正方形的几帧) - > “square1”(单帧影片剪辑)。在这种情况下,你应该调用“movingSquare.stop()”来阻止它播放。