Как явно обратиться к глобальному пакету? - PullRequest
2 голосов
/ 13 марта 2012
package Test
{
    public class TraceTest
    {
        public function TraceTest()
        {
            trace("Hello, world!");
        }

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

Как я могу ссылаться на метод глобальной трассировки в конструкторе, а не на метод TraceTest?

Ответы [ 2 ]

0 голосов
/ 13 марта 2012

Если вы поместите ваш 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 голосов
/ 13 марта 2012

Я не смог найти явный способ ссылки на глобальный пакет, но вы можете выполнить то, что в вашем примере кода, как это:

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