Batch file for MXMLC
Flex 2 Builderの試用期限も過ぎていたので、MXMLC*1用のバッチファイルを書いてみたり。
実行PATHを通してあればどこでもFlexできるかと。
- mxmlc_.bat
- compile only.
- mxmlc_launch.bat
- compile and launch.
- mxmlc_debug.bat
- compile and launch and show log.
利点
- Flex 2 SDKとこのバッチファイルさえあればFlex 2を利用することができる。
Flex 2 SDKは無料だし、Flex 2やActionScript3.0を少し触れてみたいという人向けの導入に向いている。 - 日本語Windowsのデスクトップでちょこちょこっとした作業を済ませられる。
MXMLCをコマンドラインで実行した際、カレントディレクトリなどのファイルパスに日本語が含まれていると処理が進まない時があるが、バッチファイルでは何故か実行することができる。*2
欠点
- そもそもmxmlcを利用しただけではFlex Compiler Shellのコンパイル速度に劣る。
- タスクの自動化ができるFlex Ant Tasksがある。ただしJDTが必要な模様。(参考 nod::ぶろぐ)
問題点
mxmlc_debug.batではflashlog.txtをtypeさせていますが、traceによってログに書かれた日本語などのマルチバイトの文字コードが、コマンドプロンプト上では文字化けしてしまいます。*3
ログは適当なエディタで開けば日本語でも読めるので構わないのですが、コマンドプロンプトだけで実現できたらそれはそれで便利だなと思っていたのでちょっと残念です。*4
日本語についてのメモ
traceで日本語を利用する場合、日本語が含まれる.asや.mxmlは文字コードをUTF-8にしておくべきです。
それか -compiler.actionscript-file-encoding Shift-JIS とかオプションつければOKだったかな。EUC-JPもオプション指定でOKだったと思う。
間違ったオプションをつけてもBOMのお陰なのかUTF-8の誤読はしないみたい。
mxmlc_.bat
@echo off mxmlc %1 if errorlevel 2 goto OTHERERROR if errorlevel 1 goto ERROR echo. echo SUCCESS goto END :OTHERERROR echo OTHERERROR echo. pause goto END :ERROR echo ERROR echo. pause :END
mxmlc_launch.bat
@echo off mxmlc %1 if errorlevel 2 goto OTHERERROR if errorlevel 1 goto ERROR echo. echo SUCCESS echo. echo LAUNCH : "%~n1.swf" "%~dpn1.swf" goto END :OTHERERROR echo OTHERERROR echo. pause goto END :ERROR echo ERROR echo. pause :END
mxmlc_debug.bat
@echo off mxmlc %1 if errorlevel 2 goto OTHERERROR if errorlevel 1 goto ERROR echo. echo SUCCESS echo. echo LAUNCH : "%~n1.swf" "%~dpn1.swf" echo. echo TYPE "%USERPROFILE%\flashlog.txt" echo. type "%USERPROFILE%\flashlog.txt" echo. pause goto END :OTHERERROR echo OTHERERROR echo. pause goto END :ERROR echo ERROR echo. pause :END