如何明确引用全局包?

时间:2012-03-13 00:01:46

标签: actionscript-3 namespaces

package Test
{
    public class TraceTest
    {
        public function TraceTest()
        {
            trace("Hello, world!");
        }

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

如何在构造函数中引用全局跟踪方法,而不是TraceTest的方法?

2 个答案:

答案 0 :(得分: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);
        }
    }
}

答案 1 :(得分: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;
        }
    }
}