我有一个简单的 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 加载非常奇怪 - 好像有一些代码无法正常运行。
由于它可以毫无问题地用于快速打包,那么发布构建和快速构建之间有什么区别会导致子 swf 中的代码失败?
如有任何想法,我们将不胜感激。
谢谢。
最佳答案
根据此处的评论解决了问题: http://forums.adobe.com/message/5398137
使用 var file:File = File.applicationDirectory.resolvePath("file1.swf");并添加 Flex 编译器选项“swf-version=19”为我解决了这个问题。不确定这两个更改中的哪一个修复了它,但现在一切正常。
关于ios - 适用于 iOS 的 Adobe AIR 3.8 Flash Builder 4.6 - 带有 Actionscript 的辅助 SWF 可用于快速打包但在 Releast Build 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18688576/