一次尝试使用Loader在IPA加载其他SWF资源时,会发现无法成功加载含有AS代码的SWF。
之后使用embed嵌入,使用loadBytes()函数来加载,也不成功。


基本可以确定编译出的IPA文件不包含AS脚本引擎(AVM),而并不是传言中所说的将AIR的运行时打包进去。

分析来看对目标SWF做了一次字节转换,将SWF里面的ABC块都导出单独的文件。
接下来调用下面的IPA编译器

sdks\4.5.0\lib\aot/bin/ld64/i686-apple-darwin9-ld64.exe

将ABC块转换成了ARM7架构上能执行的iOS字节码。

同时,也将一系列的应用程序需要使用到的系统API打包到最终的IPA中

"-lgcc" "-lgcc_s.1" "-arch" "arm" "-lstdc++.6" "-lcrt1.o" "-lSystem.B" "-lz" "-lobjc" "-framework" 
"CoreFoundation" "-framework" "UIKit" "-framework" "MobileCoreServices" "-framework" "CoreGraphics" 
"-framework" "Foundation" "-framework" "SystemConfiguration" "-framework" "AudioToolbox" "-framework" 
"CFNetwork" "-framework" "QuartzCore" "-framework" "OpenGLES" "-framework" "CoreLocation" "-framework" 
"CoreMedia" "-framework" "CoreVideo" "-framework" "AVFoundation" "-framework" "Security"

所以目前编译出来的IPA文件初始文件大小均在3M+

如果这点得到确认,常规的网页上的Flash应用游戏如果想移植到iOS,需要考虑将之前分离的程序模块都生成在一个SWF文件中。