[iOS]在 AIR for iOS 中加载 SWF 文件
2013-03-19 14:54
232 查看
在 iOS 设备上,对于在运行时加载和编译代码存在限制。由于这些限制,将外部 SWF 文件加载到您的应用程序中势必会有一些不同:
所有包含 ActionScript 代码的 SWF 文件都必须包括在应用程序包中。不能从外部源(如通过网络)加载包含代码的 SWF。在对应用程序进行打包时,对于 iOS 设备,应用程序包中所有 SWF 文件中的所有 ActionScript 代码都将编译成本机代码。
您不能加载 SWF 文件,然后卸载它再重新加载。如果这样做,会发生错误。
加载到内存中然后又卸载的行为与在桌面平台上这样操作的结果相同。如果加载 SWF 文件然后卸载它,包含在该 SWF 中的所有可视资源都将从内存中卸载掉。不过,对所加载 SWF 中的 ActionScript 类的任何类引用将保留在内存中,可以在 ActionScript 代码中访问这些类引用。
加载的所有 SWF 文件必须与主 SWF 文件使用相同的应用程序域。这并非默认行为,因此对于每个要加载的 SWF,您必须创建一个 LoaderContext 对象来指定主应用程序域,并将该 LoaderContext 对象传递给 Loader.load() 方法调用。如果要加载的 SWF 所处的应用程序域与主 SWF 应用程序域不同,便会发生错误。即使加载的 SWF 只包含可视资源而不包含 ActionScript 代码,也是这样。
下例中的代码将一个 SWF 从应用程序包中加载到主 SWF 应用程序域中:
对于只包含资源而不包含代码的 SWF 文件,可以从应用程序包加载,也可以通过网络加载。无论哪一种情况,都必须仍将 SWF 文件加载到主应用程序域中。
对于 AIR 3.6 之前的版本,在编译过程期间,所有代码都是从非主应用程序 SWF 中去除。只包含可视资源的 SWF 文件可以包括在应用程序包中并在运行时加载,但对于包含代码的 SWF 不是这样。如果要加载的 SWF 包含 ActionScript 代码,便会发生错误。该错误会导致应用程序中出现一个“未编译的 ActionScript”错误对话框。
Packaging and loading multiple SWFs in AIR apps on iOS
所有包含 ActionScript 代码的 SWF 文件都必须包括在应用程序包中。不能从外部源(如通过网络)加载包含代码的 SWF。在对应用程序进行打包时,对于 iOS 设备,应用程序包中所有 SWF 文件中的所有 ActionScript 代码都将编译成本机代码。
您不能加载 SWF 文件,然后卸载它再重新加载。如果这样做,会发生错误。
加载到内存中然后又卸载的行为与在桌面平台上这样操作的结果相同。如果加载 SWF 文件然后卸载它,包含在该 SWF 中的所有可视资源都将从内存中卸载掉。不过,对所加载 SWF 中的 ActionScript 类的任何类引用将保留在内存中,可以在 ActionScript 代码中访问这些类引用。
加载的所有 SWF 文件必须与主 SWF 文件使用相同的应用程序域。这并非默认行为,因此对于每个要加载的 SWF,您必须创建一个 LoaderContext 对象来指定主应用程序域,并将该 LoaderContext 对象传递给 Loader.load() 方法调用。如果要加载的 SWF 所处的应用程序域与主 SWF 应用程序域不同,便会发生错误。即使加载的 SWF 只包含可视资源而不包含 ActionScript 代码,也是这样。
下例中的代码将一个 SWF 从应用程序包中加载到主 SWF 应用程序域中:
var loader:Loader = new Loader(); var url:URLRequest = new URLRequest("swfs/SecondarySwf.swf"); var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, null); loader.load(url, loaderContext);
对于只包含资源而不包含代码的 SWF 文件,可以从应用程序包加载,也可以通过网络加载。无论哪一种情况,都必须仍将 SWF 文件加载到主应用程序域中。
对于 AIR 3.6 之前的版本,在编译过程期间,所有代码都是从非主应用程序 SWF 中去除。只包含可视资源的 SWF 文件可以包括在应用程序包中并在运行时加载,但对于包含代码的 SWF 不是这样。如果要加载的 SWF 包含 ActionScript 代码,便会发生错误。该错误会导致应用程序中出现一个“未编译的 ActionScript”错误对话框。
Packaging and loading multiple SWFs in AIR apps on iOS
相关文章推荐
- 关于air for ios中多文件loader的问题
- iOS WebView加载本地html文件
- flash加载外部swf文件层次问题
- iOS开发中加载.txt文件
- iOS中读取Cell的两种方式(资源包种加载Cell,从nib文件中注册cell)和xib知识点
- AIR开发移动设备上的3D加速配置文件-swf-version很重要
- 未能加载文件或程序集“file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0
- Flex加载外部swf样式文件
- iOS WebView 加载本地资源(图片,文件等)
- hadoop无法加载本地库文件的原因 Unable to load native-hadoop library for your platform
- iOS加载并显示bundle的.txt文件的方法
- 我的第一个Air For iOS 小游戏 ---- 《PopMoon》,作一下记录;
- arcgis for JS 使用 Node.js 加载shp文件显示到地图上
- 使用SWC文件建立具有多个iOS SWF文件的大型Flash和AIR项目
- iOS 加载Bundle文件
- 错误集_ nib文件加载,Unknown class <XXClass> in Interface Builder file.,Undefined symbolsfor architecture
- tableView 去掉多余的行数 && iOS 中直接用WebView 加载pdf doc docx 等文件
- 在Google Maps For Mobile之中加载KML文件
- 终极ios学习笔记1.0.2-ios无法加载项目内资源文件
- For input string: "${JDBC.MinPoolSize}" spring加载jdbc.properties配置文件报错