2012-03-13 49 views
2
package Test 
{ 
    public class TraceTest 
    { 
     public function TraceTest() 
     { 
      trace("Hello, world!"); 
     } 

     public function trace(s:String):void 
     { 
      // Something else 
     } 
    } 
} 

如何在構造函數中引用全局跟蹤方法,而不是TraceTest的方法?如何明確引用全局包?

回答

0

如果你把你的trace()在不同的命名空間,你會能夠通過它的命名空間(public)來訪問內置的跟蹤:

public::trace("string"); 

否則,我不認爲你可以參考回去吧。

演示:

package 
{ 
    import flash.display.Sprite; 

    public class Base extends Sprite 
    { 
     private var _assigned:String; 

     public function Base() 
     { 
      trace("This will be assigned to _assigned."); 

      public::trace(_assigned); 
     } 

     internal function trace(st:String):void 
     { 
      _assigned = st; 
     } 
    } 
} 
0

我無法找到一個明確的方式來引用全局包,但你可以做到什麼是你的代碼示例如下:

package Test 
{ 
    public class TraceTest 
    { 
     protected static var globalTrace:Function = trace; 

     public function TraceTest() 
     { 
      TraceTest.globalTrace("Hello, world!"); 
     } 

     public function trace(s:String):void 
     { 
     TraceTest.globalTrace(s); 
     } 
    } 
}