首页 > 代码库 > 如何用bat批处理编译swf项目

如何用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=false13 ::设置是否编译成debug版本14 15 set MODULE_LIST=(ModuleA,ModuleB,ModuleC)16 ::要编译的子模块列表17 18 set APP=%CODE%\src\main.as19 ::项目主模块20 set Loader=%CODE%\src\GameLoader.as21 ::项目加载类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%\modules43 set MODULE_CODE=%CODE%\src\modules44 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.xml51 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.as55 )56 57 for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set now_=%%h%%i%%j%%k58 ::记录编译结束时间59 set /a diff_=(%now_%-%start_%)/10060 echo 编译用时 %diff_% ??61 pause

 

修改CODE,PUB,FLEX,APP,Loader,MODULE_TARGET,MODULE_CODE等参数就可以用来编译自己的项目,通过MODULE_LIST,DEBUG来选择要编译的子模块,已经是否生成为DEBUG版本。

 

如果你对BAT还不是很熟悉,可以参考下面教程:
BAT批处理教程
bat之for循环
Flex mxmlc编译命令选项