Flash CS,来自外部类的引用root

时间:2010-12-21 10:11:11

标签: flash reference document-class

我创建了这个类,并将它放在Timeline.as(Document Class)的同一个包中:

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构造函数中实例化。 有没有办法从这个类中引用时间轴(root)?如果是这样,怎么样?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

文档类(或显示列表中当前的其他对象):

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);
        }
    }
}