当前位置 : 主页 > 网络推广 > seo >

actionscript-3 – 检索共享属性时worker变为null

来源:互联网 收集:自由互联 发布时间:2021-06-16
出于某种原因,当我尝试从Worker(在AS3中)接收共享属性时,结果始终为null.也就是说,我使用setSharedProperty()向Worker发送一个值,当我使用getSharedProperty()检索它时,它总是返回undefined / null. 这是
出于某种原因,当我尝试从Worker(在AS3中)接收共享属性时,结果始终为null.也就是说,我使用setSharedProperty()向Worker发送一个值,当我使用getSharedProperty()检索它时,它总是返回undefined / null.

这是我设置的一个简单测试:

package 
{
    import flash.display.Sprite;
    import flash.system.Worker;
    import flash.system.WorkerDomain;

    public class Main extends Sprite 
    {
        private var _worker:Worker;

        public function Main():void 
        {
            if (Worker.current.isPrimordial)
            {
                initMain();
            }
            else
            {
                initWorker();
            }
        }

        private function initMain():void 
        {
            _worker = WorkerDomain.current.createWorker(this.loaderInfo.bytes);

            _worker.setSharedProperty("message", "test");
            _worker.start();
        }

        private function initWorker():void 
        {
            _worker = Worker.current;

            var message:String = _worker.getSharedProperty("message");

            trace(message);
        }

    }

}

当我跟踪消息时,结果为null.虽然我的主要目标是创建一个AIR应用程序,但无论我是编译AIR(3.7)还是Flash Player(11.6,由于某种原因,11.7无法将flash.system.Worker识别为有效类),我都会得到相同的结果. .

我正在使用Flex SDK通过FlashDevelop进行编译.有人知道什么是错的,也许我错过了我的代码中的一些东西?

FlashDevelop现在似乎完全支持调试工作者,这在旧版本中并非如此(你既不能破坏,也不能在工作者内部跟踪). AIR SDK工作者支持也取得了进展(我记得在发布版中工作的东西会在调试版中破坏)
我刚刚使用AIR SDK 14发布(14.0.0.110)重新编译了您的示例

air14_sdk_win/bin/mxmlc -swf-version=25 -debug=true Main.as

并使用Shockwave Flash Debugger 14,0,0,125和FlashDevelop 4.6.1.30进行调试,得到了预期的结果:

[Starting debug session with FDB]
Created Worker 2
test

请注意,调试链中的任何元素都不是最新的(sdk / player / debugger)可能会导致调试工作者出现问题

网友评论