如何用bat批处理编译swf项目
平时用FB等IDE编译多模块的游戏项目时,除了添加移除模块的操作很繁琐外,编译速度也非常之慢。而用bat来编译swf项目,速度非常快,稳定。
在此分享自己工作用的bat,每次运行会重新编译主模块GameLoader.swf,main.swf,并编译相应的子模块。
1 @echo off 2 for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set start_=%%h%%i%%j%%k 3 ::记录编译开始时间 4 set CODE="D:\xx\xxx" 5 ::设置代码路径 6 set PUB="D:\xx\xxx\bin-debug" 7 set TARGET=%PUB% 8 ::设置输出路径 9 10 set FLEX_SDK="D:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\3.6.0" 11 ::设置sdk位置 12 set DEBUG=false 13 ::设置是否编译成debug版本 14 15 set MODULE_LIST=(ModuleA,ModuleB,ModuleC) 16 ::要编译的子模块列表 17 18 set APP=%CODE%\src\main.as 19 ::项目主模块 20 set Loader=%CODE%\src\GameLoader.as 21 ::项目加载类 22 23 echo 正在编译GameLoader.swf... 24 %FLEX_SDK%\bin\mxmlc -target-player=11.2 --debug=%DEBUG% -define=CONFIG::debug,%DEBUG% - 25 26 incremental=true -show-actionscript-warnings=true -static-link-runtime-shared-libraries=true 27 28 -strict=true -library-path+=%CODE%\lib -link-report=%TARGET%\loadReport.xml -output=%TARGET% 29 30 \GameLoader.swf %Loader% 31 32 echo 正在编译main.swf... 33 %FLEX_SDK%\bin\mxmlc -target-player=11.2 --debug=%DEBUG% -define=CONFIG::debug,%DEBUG% - 34 35 incremental=true -show-actionscript-warnings=true -static-link-runtime-shared-libraries=true 36 37 -strict=true -library-path+=%CODE%\lib -load-externs=%TARGET%\loadReport.xml -link-report= 38 39 %TARGET%\mainReport.xml -output=%TARGET%\main.swf %APP% 40 41 42 set MODULE_TARGET=%PUB%\modules 43 set MODULE_CODE=%CODE%\src\modules 44 set MODULE_CMD=-source-path=%CODE%\src -source-path=%CODE%\src\modules -allow-source-path- 45 46 overlap=true -target-player=11.2 --debug=%DEBUG% -define=CONFIG::debug,%DEBUG% - 47 48 incremental=true -show-actionscript-warnings=true -static-link-runtime-shared-libraries=true 49 50 -strict=true -library-path+=%CODE%\lib -load-externs=%TARGET%\mainReport.xml 51 52 for %%i in %MODULE_LIST% do ( 53 echo 正在编译%%i... 54 %FLEX_SDK%\bin\mxmlc %MODULE_CMD% -output=%MODULE_TARGET%\%%i.swf %MODULE_CODE%\%%i.as 55 ) 56 57 for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set now_=%%h%%i%%j%%k 58 ::记录编译结束时间 59 set /a diff_=(%now_%-%start_%)/100 60 echo 编译用时 %diff_% ?? 61 pause
修改CODE,PUB,FLEX,APP,Loader,MODULE_TARGET,MODULE_CODE等参数就可以用来编译自己的项目,通过MODULE_LIST,DEBUG来选择要编译的子模块,已经是否生成为DEBUG版本。
如果你对BAT还不是很熟悉,可以参考下面教程:
BAT批处理教程
bat之for循环
Flex mxmlc编译命令选项