之前就说这个版本会解决可以加载远程的含有代码的swf文件的需求。但是,一直比较好奇这个是否行得通,还以为 Adobe 副总裁去了苹果,内部给了特殊待遇。 因为苹果一直就是不允许远程加载代码的,像js文件都是很危险的。
但是,昨天这个3.7发布后,弄了下。发现这个并不是想象那样。
目前,3.7实现的方式是 在打包ipa的时候,ADT 会对需要外部加载的swf文件进行处理,从中抽取了ABC码打包到ipa中,然后得到一个没有abc码的swf,那么你就把这个swf部署到服务器上。
步骤:
1.建立外部swf描述的txt文件(例如为assets/sample.txt)。格式如下:
assets/ememy.swf
assets/player.swf
2.工程描述文件中增加外部swf描述的txt文件的标签描述
<iPhone>
……….
<externalSwfs>assets/sample.txt</externalSwfs>
</iPhone>
3.目前如果使用这个功能,不能直接使用FlashBuilder打包,需要使用ADT,(具体参考ADT打包),下面提供一个范例:
adt -package -target ipa-app-store -provisioning-profile <Provisioning Profile> -storetype pkcs12 -keystore <Certificate> -storepass <Password> Test.ipa Test-app.xml Test.swf assets/sample.txt assets/player.swf assets/enemy.swf
4.打包完以后,会在命令行的当前目录下生成一个externalStrippedSwfs目录,里面就是经过处理的swf(逻辑ABC码被剥掉的),这些swf可以部署到服务器上,加载就加载这些swf,而不是它们原始的那些swf.
5.目前这个功能只能支持单一程序域,使用Loader进行加载的时候,需要指定LoaderContext的程序域为当前程序域.
externalLoader = new Loader();
externalLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
externalLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);
ldrContext=new LoaderContext(false,ApplicationDomain.currentDomain,null);
externalLoader.load(urlRequest, ldrContext);
6.目前这个功能比较容易导致程序崩溃掉,官方说明,像Flex的swf,资源太大的(例如含有视频的) 都可以令程序崩溃。
具体还可以参考官方的Notes : http://helpx.adobe.com/en/flash-player/release-note/fp_117_air_37_release_notes.html
另外,重点说明几点:
1.只能使用单一的程序域,那么你加载进来的swf之间, 还有这些swf和主程序的swf,不能存在类的全称名(包名+类名) 相同,否则会存在冲突。
2.abc 被抽取出来打包到ipa中,那是否每更新这个远程的swf都要重新打包更新。 这个就取决于你所需要更新的内容是否涉及到代码,如果仅仅是资源的内容更新那是不需要重新打包ipa的,例如图片大小、颜色调整。所以得考虑所更新的内容是否涉及到ABC码。
相关推荐
通过集成Air SDK,开发者可以使用ActionScript开发SWF文件,并在Android应用中嵌入。安装Air SDK后,使用Flash Builder或An ActionScript IDE如IntelliJ IDEA,可以将SWF项目打包为Android应用。 2.第三方库:...
equinox-SDK-3.7.zip equinox-SDK-3.7.zip equinox-SDK-3.7.zip equinox-SDK-3.7.zip equinox-SDK-3.7.zip equinox-SDK-3.7.zip
DWGdirect\TX_SDK3.7\TXSDK3.7.chm最新版2012/11/1
《AIR SDK 32.0:历史、应用与重要性》 AIR SDK 32.0,全称为Adobe Integrated Runtime Software Development Kit,是Adobe公司推出的一款用于开发跨平台桌面应用程序的工具集。这个版本在发布时是Adobe AIR技术的...
### AIR SDK 文档介绍知识点详解 #### 一、AIR SDK 概述 **Adobe AIR (Adobe Integrated Runtime)** SDK 是一个强大的开发工具包,允许开发者创建跨平台的应用程序。Adobe AIR 支持使用 HTML、CSS、JavaScript ...
标题 "AIRSDK32 adt资源" 涉及到的是Adobe AIR SDK的一个特定版本,即AIRSDK32,主要用于开发跨平台的应用程序,特别是针对iOS设备。在开发过程中,adt(Adobe AIR Developer Tool)是这个SDK中的一个关键组件,它是...
8. **版本控制**:保持Flash Player和Flex SDK的最新版本,因为新版本通常会包含优化和性能提升,可能有助于减小生成的SWF文件大小。 通过上述方法,我们可以有效地管理和优化SWF文件的大小,从而提高应用的加载...
eclipse-SDK-3.7-win32.zip版种子
这个SDK加载文件包含了开发者进行程序编写时所需的头文件和库文件,使得开发过程更加简便,无需从官方网站下载庞大的SDK完整包。 首先,头文件(Header Files)是C或C++编程中不可或缺的部分,它们包含了函数声明、...
在压缩包中的“demo”文件,很可能是包含了一个示例应用或者示例代码,用于演示如何使用百度ANE进行广告集成。开发者可以通过分析和运行这个示例,快速了解和掌握SDK的使用方法。 总结起来,“百度移动广告联盟...
- 在解压后的`tbsloadfile`文件中,可能包含示例代码、配置文件或日志,帮助开发者理解如何在实际项目中实现TBS加载本地文件的功能。通过学习这些案例,可以避免重复踩坑,快速上手。 总之,腾讯TBS为安卓应用提供...
6. **API接口**:SWF SDK通常包含一组API接口,这些接口提供了加载、播放、暂停、停止、跳转等操作SWF文件的方法。开发者可以使用这些API来控制Flash内容,如响应用户输入或与其他程序组件交互。 7. **资源管理**:...
- **嵌入SWF**:SDK提供API调用,使得开发者能够在Delphi的VCL(Visual Component Library)窗体中加载和显示SWF文件。 - **播放控制**:包括播放、暂停、停止、前进、后退等操作,可调整播放速度,实现灵活的播放...
AIR SDK 3.7提供了一套API,使得AS3代码可以访问操作系统级别的功能,如桌面文件系统。 6. **用户界面**:虽然描述中提到界面简陋,但工具仍然需要一个简单的用户界面让用户可以上传图片、设定切割参数并执行切割...
《Delphi SWF SDK 2.3 Expert Edition Full Source》是一款专为Delphi开发者设计的高级Flash(SWF)开发工具包,包含了完整的源代码,为开发者提供了在Delphi环境中创建、编辑和处理SWF文件的强大功能。这个版本是...
为了能够在命令行环境下直接编译AS文件为SWF格式,需要确保系统中已经安装了Adobe Flex SDK(或更高版本的Adobe AIR SDK),并正确设置了环境变量。 1. **下载并安装Adobe Flex SDK**:可以从Adobe官方网站或其他...
SDK通常包含库文件、头文件、示例代码等资源,用于帮助开发者集成到自己的应用程序中。 在给定的文件列表中: 1. `LocalSensorAdd.dat`:这可能是一个配置或数据文件,用于添加本地传感器或者配置摄像头参数。 2. ...
Delphi SWF SDK 1.9 是一个专为Delphi开发者设计的软件开发工具包,主要用于创建、编辑和处理SWF(ShockWave Flash)文件。SWF是一种广泛用于网络的富媒体格式,常用于在线展示动画、交互式内容以及游戏。通过这个...
淘宝SDK模块代码主要涉及到的是与淘宝平台进行交互的应用开发,其中底部悬浮代码是实现特定功能的一个关键部分。在移动应用开发中,底部悬浮代码通常指的是在应用界面底部始终可见的控件或视图,用于提供固定的操作...
2. **Flex SDK或Flash Professional**:开发SWF文件通常需要使用Adobe Flex SDK或Flash Professional这样的开发工具。Flex SDK是一个开源工具集,用于构建富互联网应用程序(RIA),而Flash Professional则提供了一...