mxmlc命令行不可用是所有编译失败的根源,必须先在cmd中执行mxmlc -version成功返回版本号;需设置mxmlc_home指向flex sdk根目录,并将%mxmlc_home%in加入path,且jdk必须为6或7版本。

mxmlc 命令行不可用,就别谈编译——所有构建失败根源都在这一步。
确认 mxmlc 能在 cmd 中直接运行
Sublime 的 Build System 只是调用外部命令的外壳,它不提供 mxmlc。如果 cmd 中执行 mxmlc -version 报 “不是内部或外部命令”,后续一切都会卡死。
- 必须设置系统环境变量
MXMLC_HOME,值为 Flex SDK 根目录(如C:/flex-sdk-4.6) - 把
%MXMLC_HOME%in加进系统PATH(注意:不是只加%MXMLC_HOME%) - Flex SDK 4.6 依赖 JDK 6 或 7;JDK 8+ 会直接抛
UnsupportedClassVersionError,降级或换 JRE 是唯一解 - 修改
flex-sdk-4.6/bin/jvm.config中的java.home,指向你安装的 JDK 6/7 根目录,路径中用正斜杠(如C:/Program Files/Java/jdk1.7.0_80) - 新开一个
cmd窗口再测试,避免环境变量未刷新
Build System JSON 中 cmd 字段必须写绝对路径
Sublime 不展开环境变量,也不识别相对路径。"%MXMLC_HOME%/bin/mxmlc.exe" 这种写法一定失败。
-
cmd数组第一项必须是绝对路径,例如:"C:/flex-sdk-4.6/bin/mxmlc.exe"或"C:/path/to/runFlash.bat" - 若用批处理脚本,路径中斜杠可用正斜杠或双反斜杠(
C:/path/runFlash.bat或C:\path\runFlash.bat),单反斜杠会转义出错 - 参数中必须包裹
${file}:"${file}",否则含空格路径(如C:/My Project/Main.as)会被截断 -
encoding设为"UTF-8"(推荐),除非你明确用 GBK 保存文件;AS 文件含中文注释时,编码错会导致高亮崩坏、编译报错
runFlash.bat 必须正确处理空格与 -debug 参数
Windows 批处理对空格极其敏感,而 Sublime 传入的 ${file} 很可能含空格。脚本里写错一个空格或引号位置,mxmlc.exe 就根本收不到完整路径。
- 脚本第一行加
@ECHO OFF避免命令回显干扰 - 必须用双引号包裹路径:
mxmlc.exe "%~1" -output "%~dpn1.swf" -debug -
-debug要显式带上,否则trace()输出为空;若需堆栈日志,追加-verbose-stacktraces - 不要写成
mxmlc.exe%~nx1这类拼接形式——它会变成mxmlc.exeMain.as,命令找不到 - 确保
flex-config.xml中<static-link-runtime-shared-libraries>true</static-link-runtime-shared-libraries>,否则 RSL 加载失败,SWF 启动即黑屏
语法高亮 ≠ 编译可用,.as 文件必须手动绑定语法
Sublime 默认不识别 .as 文件,打开就是白底黑字——不是你配错了,是它压根没内置 ActionScript 语法定义。
- Package Control 搜索时必须严格输入
ActionScript(首字母大写,无空格,无版本号),作者是sublimehq;别选AS3、ActionScript3或其他拼写变体 - 装完后,打开任意
.as文件,点击右下角状态栏当前语法名(如Plain Text),选择Open all with current extension as… → ActionScript - 验证高亮:输入
trace("hello");,trace应为蓝色,字符串应为橙色;若全是灰色,右键 →Developer → Show Scope Name,光标停在trace上,看是否显示source.actionscript.3 support.function - 确保文件编码为
UTF-8(无 BOM):右下角点击编码名 → 选UTF-8;若用 GBK 编码保存含中文注释的.as文件,高亮会大面积崩坏
最容易被忽略的是 jvm.config 里的 java.home 路径方向和 JDK 版本匹配——哪怕 mxmlc -version 成功了,编译时仍可能因 JVM 找不到或版本不兼容而静默失败。











