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

mxmlc 命令不可用,就别谈编译 —— 所有构建失败根源都在这一步,不是插件没装好,也不是 Sublime 设置错了。
确认 mxmlc 能在命令行直接运行
Sublime 的 Build System 只是调用外部命令的外壳,它不负责提供 mxmlc。如果 cmd 中执行 mxmlc -version 报 “不是内部或外部命令”,后续一切都会卡死。
- 必须设置系统环境变量
MXMLC_HOME,值为 Flex SDK 根目录(如C:/flex-sdk-4.6) - 把
%MXMLC_HOME%\bin加进系统PATH(注意:不是只加%MXMLC_HOME%) - Flex SDK 4.6 依赖 JDK 6 或 7;JDK 8+ 会直接抛
UnsupportedClassVersionError,降级或换 JRE 是唯一解 - 新开一个 cmd 窗口再测试,避免环境变量未刷新
runFlash.bat 必须处理空格路径和参数顺序
Windows 批处理对空格极其敏感,而 Sublime 传入的 ${file} 很可能含空格(比如 C:/My Project/Main.as)。脚本里写错一个空格或引号位置,mxmlc.exe 就根本收不到完整路径。
- 脚本中必须用双引号包裹路径:
mxmlc.exe "%~1" -output "%~dpn1.swf" -debug -
-debug参数要显式带上,否则trace()输出为空;若需堆栈日志,追加-verbose-stacktraces - 不要写成
mxmlc.exe%~nx1这类拼接形式——它会变成mxmlc.exeMain.as,命令找不到 - 脚本第一行加
@ECHO OFF避免命令回显干扰
Build System JSON 里路径和编码必须严格匹配实际
Sublime 不展开环境变量,也不自动识别相对路径。JSON 中任何一处路径错误、编码不一致,都会导致编译失败或输出乱码。
-
cmd数组第一项必须是绝对路径,如"C:/flex-sdk-4.6/bin/mxmlc.exe",不能写"%MXMLC_HOME%/bin/mxmlc.exe" - 若用
runFlash.bat,路径也得是绝对路径:"C:/path/to/runFlash.bat",斜杠用正斜杠或双反斜杠均可 -
encoding设为"UTF-8"(推荐),除非你明确用 GBK 保存文件;AS 文件含中文注释时,编码错会导致高亮崩坏、编译报错 - 确保
flex-config.xml中<static-link-runtime-shared-libraries>true</static-link-runtime-shared-libraries>,否则 RSL 加载失败,SWF 启动即黑屏
语法高亮 ≠ 编译可用,ActionScript 包名不能拼错
Sublime 默认不识别 .as 文件,装错插件名或绑定失败,连 trace 都不会变蓝——但这和编译完全无关,只是视觉反馈断了。
- Package Control 中搜索必须输
ActionScript(首字母大写、无空格、无版本号),作者是sublimehq;选AS3或ActionScript3基本都失效 - 装完后打开一个
.as文件,右下角点击当前语法名 →Open all with current extension as…→ 选ActionScript(不是ActionScript 3) - 验证是否生效:右键 →
Developer → Show Scope Name,光标停在trace上,应显示source.actionscript.3 support.function;若显示source.plain,说明绑定失败 - 高亮正常但 Ctrl+B 报错?别折腾插件,回头检查
mxmlc命令行是否真通
mxmlc 没走通却还在调 Build System、runFlash.bat 少了个引号却反复改 JSON、或者以为高亮好了就能跑起来。Flex SDK 和 Windows 批处理的耦合太深,每一步都得实打实验证,跳不过去。











