Sublime Text这是程序员最喜爱的编辑器,说说在win7下使用Sublime Text来编写as文件以及编译与运行swf。
准备工作
1、Sublime Text 2
2、Java 的JDK(jdk-8u31-windows-i586.exe官网下载32位最新的版本)
3、Flex的SDK(flex_sdk_4.6)
4、Flash Player debug
OK,下载Java
的JDK后并安装,配置JDK
的方法很简单网络上有一大堆,配置好就行,一定要注意:如果Flex
的SDK
是用的32位的那么Java
的JDK
也要使用32位的,64位的也一样都要一致,不然会发生“ cound not find a JVM ”
的错误。在解压后的flex_sdk_4.6/bin
文件夹下有jvm.config
文件,它对应mxmlc.exe
。修改其中的java.home
,路径是安装Java
的JDK
的位置,注意“/”
的方向。
在解压后的flex_sdk_4.6/bin
文件夹下有jvm.config
文件,它对应mxmlc.exe
。修改其中的java.home
,路径是安装Java
的JDK
的位置,注意“/”
的方向。
配置mxmlc环境变量
新增环境变量MXMLC_HOME
,指向的路径为Flex
的SDK
路径。并把MXMLC_HOME
加入系统Path
变量内。如图。
配置好环境变量后保存并运行cmd
控制台,输入mxmlc
回车,看是否如下图成功,如果不是那么请检查环境配置。
Sublime Text安装插件
安装插件步骤:ctrl+shift+p
打开插件安装列表,并输入
Package Control:Install Package
然后安装插件ActionScript 3
和插件ConvertToUTF8
创建Sublime Text Build文件
Tools ->Build System -> New Build System...
先不写入信息,保存文件到插件文件夹下
这里为了方便我写了一个批处理文件,执行Sublime Text
在编译as
文件时产生的处理。
在上面的目录下继续新建一个 runFlash.bat
文件,写入
@ECHO Compiling %~nx1……
E:\flex_sdk_4.6\bin\mxmlc.exe %~nx1 -debug
start %~n1.swf
(
“-debug”
是开启日志log
的记录用于检测trace
信息)
然后在ActionScript 3.sublime-build
文件内写入
{
"cmd": ["C:\\Program Files (x86)\\Sublime Text 2\\Data\\Packages\\ActionScript 3\\runFlash.bat","${file}"],
"encoding": "GBK"
}
设置flex-config.xml
,在E:\flex_sdk_4.6\frameworks
文件夹下把xml
里面
<static-link-runtime-shared-libraries>false</static-link-runtime-shared-libraries>
改为<static-link-runtime-shared-libraries>true</static-link-runtime-shared-libraries>
不然会报:
警告: 此编译单元不包含在
Frame
元数据中指定的factoryClass
,无法加载配置的运行时共享库。要在没有运行时共享库的情况下进行编译,请将-static-link-runtime-shared-libraries
选项设置为true
,或删除-runtime-shared-libraries
选项。
运行swf
注意:在写
as
文件时要使用UTF-8
编码保存文件。因为在as
中trace
打印出来的是以utf-8
编码的,所以为了避免乱码,安装ConvertToUTF8
插件后保存文件为utf-8
格式。
选择Build System
ctrl+b
运行下文件:
OK,到目前为止,已经可以成功运行!如果代码有问题会在下方控制台提示。
查看ActionScript3的trace打印信息
Sublime Text
控制台不会显示Flash Player
的打印信息。因此想要看到我们的打印位置是否被执行到改怎么办呢?好吧,其实在我们可以在
C:\Users\Administrator\AppData\Roaming\Macromedia\Flash Player\Logs
文件夹下看到一个文件flashlog.txt
这个文件就是trace
的输出
注意:当新的flash
启动时,flashlog.txt
文件会被重新清空!里面的内容将被删除。
如果有一个swf被运行时,flashlog.txt
文件大小为0KB
,这时开始打印信息,flashlog.txt
文件增大。
又一个swf
被运行,这时有两个swf
在运行,flashlog.txt
文件将被清空为0KB
,两个swf
的打印信息将同时存在于flashlog.txt
文件中。
如果你在玩页游,浏览器中的swf也会显示在这里……
延伸
最佳的配置方法是:把
runFlash.bat
放在AS
项目文件夹下,每个AS
项目对应自己的runFlash.bat
文件。
修改bat
内容
@echo off
set name=HelloWorld
set filepath=d:\000\%name%.as
set libpath=D:\000\lua-alchemy-v0.3.2.swc
set outfile=D:\000\%name%.swf
@echo Compiling %name%……
E:\flex_sdk_4.6\bin\mxmlc.exe %filepath% -debug -library-path+=%libpath% -utput=%outfile%
start %outfile%
(
name
:主文件名。filepath
:主文件路径。libpath
:库文件路径也可以是存放swc
的文件夹。outfile
:输出文件路径)
(“-library-path+=lua-alchemy-v0.3.2.swc”
这个参数是导入swc
库文件,在编译时会把swc
库文件编译进去)
修改ActionScript 3.sublime-build
内容
{
"cmd": ["..\\runFlash.bat"],
"encoding": "GBK"
}
这样的好处是在本项目任何文件下都能正确的执行主文件,下图在Hello.as
下ctrl+b