我创建了这个类,并将它放在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)?如果是这样,怎么样?
谢谢!
答案 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);
}
}
}