0

我制作了这个类,并将它放在同一个 Timeline.as 包中(文档类):

package {
    import flash.utils.Timer;
    import flash.events.TimerEvent;

    public class Counter2 extends Timer {

        public function Counter2(delay:Number, repeatCount:int=0) {
            super(delay, repeatCount);
            super.addEventListener(TimerEvent.TIMER, timerHandler);
        }

        public override function start():void {
            super.start();
        }
        public override function stop():void {
            super.stop();
        }
        public function timerHandler(evt:TimerEvent) {
            trace(evt.target.currentCount);
        }
    }
}

此类在 Timeline.as 构造函数中实例化。有没有办法从这个类中引用 Timeline(root) ?如果是这样,怎么做?

谢谢!

4

1 回答 1

0

静态舞台对象只能被显示列表中的对象访问。尝试在您的自定义计时器类中创建一个公共方法并使用它来传递(和存储)对舞台的引用......就像这样:

文档类(或当前显示列表中的另一个对象):

package {
    import TestDependency;
    import flash.display.MovieClip;

    public class Main extends MovieClip
    {
        public var td:TestDependency;

        function Main() {
            td = new TestDependency(1000);
            td.bindToStage(this.stage);
        }
    }
}

您的自定义类(不在显示列表中:

package {
    import flash.display.Stage;
    import flash.utils.Timer;
    public class TestDependency extends Timer
    {
        private var stageRef:Stage;

        function TestDependency(delay) {
            super(delay);
        }

        public function bindToStage($stageRef:Stage)
        {
            this.stageRef = $stageRef;
            trace(this.stageRef.stageWidth);
        }
    }
}
于 2010-12-21T13:52:16.030 回答