如何从AS3工作类访问父变量或包装变量

时间:2015-04-04 14:00:04

标签: actionscript-3 flex actionscript flex4.6 flash-builder4.5

我正在使用Flash Builder 4.7并创建了一个Worker Class。以下是代码:

package co.fuix.mobile.system.model
{
    import flash.display.DisplayObjectContainer;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.system.MessageChannel;
    import flash.system.Worker;
    import flash.utils.getDefinitionByName;

    import mx.managers.SystemManager;

    public class InstantMessengerWorker extends Sprite
    {

        private var bm:MessageChannel;
        private var mb:MessageChannel;
        public function InstantMessengerWorker()
        {

            super();

            bm = Worker.current.getSharedProperty("BACK_TO_MAIN_CHANNEL");
            mb = Worker.current.getSharedProperty("MAIN_TO_BACK_CHANNEL");
            mb.addEventListener(Event.CHANNEL_MESSAGE, onMainToBack);

        }

        protected function onMainToBack(event:Event):void
        {
            if(mb.messageAvailable){
                var s:SystemManager;
                trace('*'+mb.receive());
                trace('**'+mb.receive());
                trace('***'+mb.receive());
                trace(mx.core.FlexGlobals.topLevelApplication.myVariable);
            }
        }
    }
}

如何引用主mxml文件中的变量。我知道如何使用消息通道,但我希望直接得到该变量。

当我运行上面的代码时,这部分

trace(mx.core.FlexGlobals.topLevelApplication.myVariable);

给我一​​个错误。

任何帮助都会受到重视

1 个答案:

答案 0 :(得分:0)

您无法从主应用中访问变量。它们分开运行。你需要做的是:

Link to Adobe docs