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

静的 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);
        }
    }
}
于 2010-12-21T13:52:16.030 に答える