2010-12-21 28 views
0

参考根I作出这个类和我把它在同一个包Timeline.as的(文档类):闪存CS,从外部类

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)?如果是这样,怎么样?

谢谢!

回答

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