1

我有一个简单的 Flex Mobile 项目,它只允许用户在 2 个不同的 .swf 游戏之间进行交换。我使用以下代码加载 .swf:

private function loadFile(f:String):void{   
            var _urlRequest:URLRequest = new URLRequest(f);
            var _loader:Loader = new Loader();
            var _lc:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, null);
            _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onSWFLoaded);
            _loader.load(_urlRequest, _lc);
            txt.text="loading";
            // add loader to container
            grp.addChild(_loader);
        }
        private function onSWFLoaded(e:Event):void {
            // status text to show it loaded
            txt.text="loaded!";
        }

然后在用户按钮上单击我只是这样做:

 loadFile("file1.swf");

file1.swf 被打包到构建中。我在我的 iPod Touch 上的快速打包下在调试时运行它,一切都像一个魅力,但是当我进行导出发布构建时,我的状态文本仍然显示“已加载”,但 swf 加载非常奇怪 - 好像有一些代码无法正常运行。

由于它可以毫无问题地进行快速打包,那么发布构建和快速构建之间有什么区别会导致子 swfs 中的代码失败?

任何想法,将不胜感激。

谢谢。

4

1 回答 1

1

根据此处的评论解决了问题: http ://forums.adobe.com/message/5398137

使用 var 文件:File = File.applicationDirectory.resolvePath("file1.swf"); 并添加 Flex 编译器选项“swf-version=19”为我解决了这个问题。不确定这两个更改中的哪一个修复了它,但现在一切正常。

于 2013-09-10T16:37:32.587 回答