Flash CS, ссылочный корень из внешнего класса - PullRequest
0 голосов
/ 21 декабря 2010

Я создал этот класс и поместил его в тот же пакет 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) из этого класса?И если да, то как?

Спасибо!

1 Ответ

0 голосов
/ 21 декабря 2010

Статический объект 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);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...