Flex 编译器及编译步骤
通过为Flex项目添加编译器参数:-keep-generated-actionscript=true 可以看到经过编译器处理过的源程序文件集合。
在这些文件的文件名中包含有“xxx-generated.as”字样。
这些异样的文件名不符合:“文件名=类名” 这个规则的。通常理解这些文件是不能够被编译的(比如在FlexBuilder编辑环境下会报编译错误)。
这些文件是谁生成的?这样的文件名又是如何能够顺利通过编译的?
下面转载的这篇文章算是为解开这个谜,做个前期铺垫。
(猜想和编译器有很大关系)
转载: sysu_2010的专栏 http://blog.csdn.net/sysu_2010/article/details/6619518
=========================================================================================================
【编译】
ActionScript程序在可被Flash运行时执行之前,必须从人可读的ActionScript 3.0代码转化为一种Flash运行时所理解的浓缩的二进制形式,称为ActionScript字节码(或ABC)。然而,ActionScript字节码本身不能被Flash运行时执行;而必须被封装到一个称为.swf文件的二进制容器文件中,.swf文件把字节码和任何ActionScript程序所需的嵌入媒体资源都存储到Flash文件格式或称SWF中。将ActionScript程序转化为字节码的过程叫作编译该程序,生成.swf文件的过程叫作编译该.swf文件,有时也叫输出或发布该.swf文件。 要编译ActionScript 3.0程序和.swf文件,我们使用一个叫编译器的软件模块。编译ActionScript代码的编译器叫作ActionScript编译器;生成.swf文件的编译器叫作SWF编译器。任何声称完全支持Flash文件格式的SWF编译器都包括一个ActionScript编译器。自然,Flex Builder 2和Flash制作工具都包含一个SWF编译器(并额外包括一个ActionScript编译器)。Flex Builder 2和Flash制作工具共享同一个ActionScript编译器,但却有不同的SWF编译器——分别叫作Flex编译器和Flash编译器。Adobe还把Flex编译器作为一个单独的命令行程序提供,叫作mxmlc。mxmlc编译器包含在Adobe的免费开发者工具包Flex SDK中。
【即时编译(Just-In-Time Compilation)】
当 ActionScript程序运行的时候,Flash运行时读取编译过的ActionScript字节码并将它翻译成本地机器码指令,在它所运行的特定的计算机硬件上执行。很多情况下,本地机器码指令被保存下来以便它们可以再次使用而不需要重新从ActionScript字节码翻译。 将ActionScript 3.0代码转化为字节码叫作编译,同样,将ActionScript字节码翻译成本地机器码并留待后续执行的过程也叫作编译。首先,程序员将人可读格式的代码编译成Flash运行时所理解的格式(ActionScript字节码),然后,Flash运行时自动将ActionScript字节码编译成运行程序的硬件所理解的格式(本地机器码),后面这种编译形式(字节码到机器码)被称为即时编译,或JIT,因为它就在程序需要特定的被编译的字节码之前立即发生。即时编译有时也叫动态翻译。有经验的程序员可能有兴趣了解,类定义的顶层不是即时编译的(因为它只被执行一次)。
Flex 编译器及编译步骤的更多相关文章
- Linux-编译器gcc/g++编译步骤
gcc和g++现在是gnu中最主要和最流行的c&c++编译器.g++是c++的命令,以.cpp为主:对于c语言后缀名一般为.c,这时候命令换做gcc即可.编译器是根据gcc还是g++来确定是按 ...
- Notepad++根据语言类型自动选择对应编译器来编译代码
Notepad++的NppExec插件可以调用好多编译器来编译代码. 比如编译Java: NPP_SAVE javac "$(FULL_CURRENT_PATH)" java -c ...
- Android 源码编译 步骤
添加资源后编译步骤 1:lunch 112:mmm frameworks/base/core/res/生成Install: out/target/product/hammerhead/system/f ...
- zlib库VS2015编译步骤
[点击这里下载zlib1.2.8源码](http://zlib.net/zlib128.zip) [点击这里下载zlib1.2.8编译动态库](http://zlib.net/zlib128-dll. ...
- 腾讯开源项目phxpaxos的编译步骤
#paxos的一般编译流程在项目文档<中文详细编译手册>里面已经有介绍,这里重点介绍一下编译samples目录下的代码: #我的环境是ubuntu; #设置paxos根目录 phx_dir ...
- 如何在Windows命令行(DOS界面)中调用 编译器 来编译C/C++源程序
首先说明一下背景: 为什么要在DOS界面编译C/C++源程序?有很多现成的开发环境(IDE)如:vs, vc++等,这些开发环境集成了编译,调试,使用起来很方便,而且图形化操作界面,简洁明了.但是在开 ...
- Android APK反编译步骤
反编译步骤 1.通过Android Killer 打开apk,自动开始分析 2.分析结束后,在分析好的工程上右键->打开方式->打开文件位置 在文件夹ProjectSrc中有文 ...
- R58的编译步骤f1选项v1.1版本
R58的编译步骤f1选项v1.1版本 2017/3/16 16:38 请严重注意: 编译全志R58的Android6.0.1的系统和其它系统有两个不同: 1.在执行pack打包之前,必须执行verit ...
- OpenSSL简单介绍及在Windows、Linux、Mac系统上的编译步骤
OpenSSL介绍:OpenSSL是一个强大的安全套接字层password库,囊括基本的password算法.经常使用的密钥和证书封装管理功能及SSL协议.并提供丰富的应用程序供測试或其他目的使用. ...
随机推荐
- MD5 加密原理(转)
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Secur ...
- bzoj 1040 1040: [ZJOI2008]骑士
1040: [ZJOI2008]骑士 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 5210 Solved: 1987[Submit][Status ...
- mysql-数据分组
一.创建分组 上面所讲的语句都是建立在表的所有数据或匹配特定的where子句的数据上进行的.是否能够进行分组,在进行汇总计算哪儿?例如:要想返回每个供应商提供的产品数目怎么办? 分组是在select语 ...
- nyoj-673-悟空的难题(数组标记)
悟空的难题 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描写叙述 自从悟空当上了齐天大圣.花果山上的猴子猴孙们便也能够尝到天上的各种仙果神酒,所以猴子猴孙们的体质也得到了非 ...
- Android 输入框限制字符输入数
有时候对Android的输入框有字符输入数量的限制,而且显示字符输入的数量.通过下面方式能够实现: 1.自己定义LimitNumEditText继承EditText import android.co ...
- angularjs --- ngResource 类似于 ajax发送请求。
<!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...
- List of content management systems
https://en.wikipedia.org/wiki/List_of_content_management_systems Microsoft ASP.NET Name Platform Sup ...
- sklearn.preprocessing OneHotEncoder——仅仅是数值型字段才可以,如果是字符类型字段则不能直接搞定
>>> from sklearn.preprocessing import OneHotEncoder >>> enc = OneHotEncoder() > ...
- poj--1789--Truck History(prim)
Truck History Time Limit: 2000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64u Submit ...
- es6 --- 功能
标记的模板文字 1.模板文字!确实很棒.我们不再会这样做…. const concatenatedString = "I am the " + number + "per ...