AS3从类中运行gotoAndStop

时间:2014-05-23 12:56:12

标签: actionscript-3 flash

我在Adobe Flash中遇到了Actionscript 3.0的问题。我不能从类(不是文档类)运行“gotoAndStop”。 在互联网的帮助下,我尝试了几件事,但都没有奏效:

1)

MovieClip(root).gotoAndStop(3);        

2)

package 
 {

import flash.display.MovieClip;

public class CustomClassName extends MovieClip
{
    public static var mainTimeline:MovieClip;
    public function CustomClassName()
    {
        // constructor code
    }
 }
}

3)

 public class np extends SimpleButton {
    var _root:MovieClip;

    public function np() {
        this.addEventListener(Event.ADDED_TO_STAGE,init);
        this.addEventListener(MouseEvent.CLICK,nextF);
    }

    private function init(e:Event):void{
        _root = MovieClip(this.root);
    }

    private function nextF(e:MouseEvent):void{
        _root.addEventListener(Event.RENDER,renderF);
        stage.invalidate();
        _root.nextScene();
    }

    private function renderF(e:Event):void {
        _root.gotoAndStop(5);
    }
}

我有这些进口商品:

import flash.display.MovieClip;
import flash.display.Graphics;
import flash.display.Stage;
import flash.events.Event;

如果我运行这些代码行:

trace('frame:',currentFrame);
super(this).gotoAndPlay(2);
trace('frame:',currentFrame);

...结果我得到0作为currentFrame。

我有一个我想要运行gotoAndStop(2)的类。 在我的.fla文件中,我在第一帧中有这些:

stop();
import Buzzer.*;

var buzzerClip:Buzzer = new Buzzer();
stage.addChild(buzzerClip);

但是代码没有运行gotoAndStop函数。实际上不会返回任何错误。有人有另一个想法吗?

1 个答案:

答案 0 :(得分:1)

在将显示对象添加到显示列表之前,属性root为空。

所以要调整你的第一次尝试:

public function MyDisplayObject()
{
    init();
}

private function init():void
{
    addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
}

private function addedToStageHandler()
{
    MovieClip(root).gotoAndStop(3);
}