为什么我不能停在Flash时间轴的第1帧?

时间:2011-04-03 07:04:19

标签: flash actionscript-3

我尝试创建一个标签界面: enter image description here

所以在第1帧的每一层我添加了

this.stop();

但在运行时说:

1180: Call to a possibly undefined method addFrameScript.

main.as目前没用,但我可以证明它会产生影响:

package {   
    import flash.display.Sprite;
    import flash.events.*;
    import fl.controls.CheckBox;

    public class main extends Sprite {      

      public function main() {  
        addEventListener( Event.ADDED_TO_STAGE, init );     
      }

      public function init( e:Event ):void {
        removeEventListener( Event.ADDED_TO_STAGE, init );
      }         

      public function hello(target:MouseEvent) {
        trace(target);  
      } 
    }       
}

3 个答案:

答案 0 :(得分:7)

由于您的文档类扩展了Sprite,因此它没有stop方法。 Sprite没有时间轴或帧。如果要使用文档类并在主时间轴上有多个框架,则应改为扩展MovieClip。

所以你可以改变这个:

public class main extends Sprite {

......对此:

public class main extends MovieClip {

答案 1 :(得分:2)

不要使用FrameScripting,并且在拥有文档类时不要使用它。使用Event.ENTER_FRAME确定播放头的位置。您可以使用FrameLabels使其易于管理。 但是在上面的代码中,你正在扩展Sprite,所以没有play() - 和stop() - 你的帧可以执行的方法。此外,addFrameScript()方法不可用,因此请尝试扩展应该有效的MovieClip。

问候 菲利普

答案 2 :(得分:2)

正如已经说过的那样,您需要扩展MovieClip以获得时间轴。 还

  

所以在第1帧的每一层我添加了

this.stop();
     

您无需在每个图层上添加停靠点。如果操作在一个帧中定义,则会影响该帧上的所有图层。