am2框架图
abc文件
avm2_overview.pdf
http://www.adobe.com/content/dam/Adobe/en/devnet/actionscript/articles/avm2overview.pdf
abc文件就是flash player可以直接解释执行的的字节码,该文件中的内容会直接嵌入到swf文件的doABC标签下。源码的asc包就是处理abc格式的。通常在编译AS项目时,as3脚本文件都会被编译成abc文件然后再生成doABC标签。
手工编译as3到abc文件
在flash sdk的lib目录下,有个asc.jar,该文件就是用来生成abc文件的java程序,机器上要安装java运行时。
察看Hello.as文件所在目录会发现新生成一个Hello.abc文件。
继续上面,把Hello.as文件改为一个class看看;
ABC文件的格式
abcFile
{
u16 minor_version
u16 major_version
cpool_info constant_pool
u30 method_count
method_info method[method_count]
u30 metadata_count
metadata_info metadata[metadata_count]
u30 class_count
instance_info instance[class_count]
class_info class[class_count]
u30 script_count
script_info script[script_count]
u30 method_body_count
method_body_info method_body[method_body_count]
}
常量池
cpool_info
{
u30 int_count
s32 integer[int_count]
u30 uint_count
u32 uinteger[uint_count]
u30 double_count
d64 double[double_count]
u30 string_count
string_info string[string_count]
u30 namespace_count
namespace_info namespace[namespace_count]
u30 ns_set_count
ns_set_info ns_set[ns_set_count]
u30 multiname_count
multiname_info multiname[multiname_count]
}
评论