如何用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:xxxxx"
 5 ::设置代码路径
 6 set PUB="D:xxxxxin-debug"
 7 set TARGET=%PUB%
 8 ::设置输出路径
 9 
10 set FLEX_SDK="D:Program Files (x86)AdobeAdobe Flash Builder 4.6sdks3.6.0"
11 ::设置sdk位置
12 set DEBUG=false
13 ::设置是否编译成debug版本
14 
15 set MODULE_LIST=(ModuleA,ModuleB,ModuleC)
16 ::要编译的子模块列表
17 
18 set APP=%CODE%srcmain.as
19 ::项目主模块
20 set Loader=%CODE%srcGameLoader.as
21 ::项目加载类
22 
23 echo 正在编译GameLoader.swf...
24 %FLEX_SDK%inmxmlc -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%inmxmlc -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%srcmodules
44 set MODULE_CMD=-source-path=%CODE%src -source-path=%CODE%srcmodules -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%inmxmlc %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编译命令选项

原文地址:https://www.cnblogs.com/leoin2012/p/3900041.html