0%

用Flex编译as成swf文件

本来想重新编译下 SWFUpload.swf 文件,但不料失败,原因是我对 flex 的mxmlc还不够了解, 有知道的大神请指教一二, 小弟在此先行谢过了…
本文简单介绍一下如何编译一个简单的 as 文件。

vim test.as, 创建一个测试 as 文件,并将以下添加内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package {
import flash.display.Sprite;
import flash.text.TextField;

public class ate extends Sprite {
private var container:Sprite;
private var text:TextField;
public function ate():void {
container = new Sprite();
text = new TextField();
text.text = 'Hello ActionScript!';
addChild(container);
container.addChild(text);
}
}
}

下载 && 安装工具

下载 apache-flex-sdk, 我使用的版本是 4.16.0 for Mac.

1
2
tar zxf ~/Downloads/apache-flex-sdk-4.16.0-bin.tar.gz
cd apache-flex-sdk-4.16.0-bin/bin

编译

./mxmlc path/to/test.as

编译成功后将生成 path/to/test.swf 文件

所遇错误及解决方案:

若提示以下信息:
flex_error_1
首先, 打开flex-config.xml文件,查看swf-version版本,我的是14 对应playerglobal.swc版本是11.1(其他的比如: 15 就对应 11.2)。

1
vim /Users/codezm/Downloads/apache-flex-sdk-4.16.0-bin/frameworks/flex-config.xml

打开 此网页 下载对应版本playerglobal.swc

并将{playerglobalHome}替换成你下载的PATH, 配置文件中有两处位置需要替换。

后期

以后有时间再来试试重新编译 SWFUpload.as 文件(目前不知道如何在编译的时候再引入其他编译包如: FileItem.as)吧~