mxmlc 命令行编译 http://blog.csdn.net/lqk1985/article/details/6444513
今天学习用mxmlc命令行方式编译程序,
目的1:是为了让美术不需要安装flex就可以编译程序,验证代码
目的2:解决之前那个flex项目文件和svn冲突问题,保证不需要上传项目文件的同时可以,下到代码就可以编译
第一步,首先建立一个bat批处理文件 内容写入
mxmlc src/DoucmentClass.as -load-config+=configuration.xml -output bin-debug/GameName_debug.swf -debug
pause
*mxmlc //是命令
* src/DoucmentClass.as //文档类地址(注意和bat文件的关系)
* -load-config+=configuration.xml //加载一个配置文件,由于还需要使用系统默认配置,所以用+=表示附加(注意configuration.xml文件的目录结构)
*- output bin-debug/GameName_debug.swf //输出文件目录,这个参数不写在configuration.xml是因为加了flashbulider4会报错,估计fB4配置的结构不让你动,不知道其他还有那些参数不能用
*-debug //应该可以写在配置文件里,但考虑可以写 bebug 和 release 2个版本的bat.会比较方便
第二步,建立 configuration.xml配置文件,(注意和bat中参数文件的关系)
mxmlc的参数很多.目前弄了一些基本写在里面
game
game.Game
true
true
false
src
swcs
swcs/TestA.swc
zlonggames.com
0xFFFFFF
24
1000
60
500
375
10.0.0
true
zlonggames
breathxue
http://www.zlonggames.com
spilgames
gameName
有几个方式可以找到这些参数的使用
1.google
2. 用flex编译的时候 输入参数 -dump-config xxxx.xml 会将这次编译的所有参数都写到指定的xml中, 但尝试直接用这个xml作为配置文件,失败…只能考一部分出来了
3.cmd 输入 mxmlc -help为了统一,我把fB4中加的参数都放到配置文件中了,fb4的参数只有 -load-config+=configuration.xml
以后有什么需要改的就改配置文件就可以了
只在自己机器测试通过,找个美术试试去
测试成功
而且之前没有考虑的loading的问题,
swcs/TestA.swc
的东西应该会影响loading,后来发现没有问题..还要研究一下
air的使用amxmlc
air不能直接运行bin-debug下的swf,会报“VerifyError: Error #1014: 无法找到类 flash.events::NativeWindowBoundsEvent。”
所以air想要不打包air程序,直接运行要使用adl命令。
amxmlc src/TemplateMaker.mxml -output bin-debug/TemplateMaker.swf
adl bin-debug/TemplateMaker-app.xml
========
flex编译命令相关 http://blog.csdn.net/linking530/article/details/7676706
最近碰到几次flex组件集版本问题,mx容器包含s组件,错误百出,会一直提示皮肤文件错误,上网查了一下,只要在工程属性中--->Flex编译器--->附加的编译参数中加入如下命令行即可:-keep-all-type-selectors=true(注意空格隔开);
Mxmlc参数选项
描述
accessible=true|false
缺省值为false,表示是否具有访问性特征。
actionscript-file-encoding string
设置As文件的编码方式。actionscript-file-encoding=Shift_JIS
advanced
列表显示帮助高级选项mxmlc -help advanced
allow-source-path-overlap=true|false
检查一个源文件夹是否是另外一个源文件夹得子文件夹,这样让包名比较明确。
as3=true|false
是否用As3的对象模型,缺省为true。
benchmark=true|false
在标准输出打印详细的编译时间,默认为true
context-root context-path
设置{context.root}占位符的值,一般用于channel的定义,缺省为null
contributor name
在目标的swf文件中设置元数据。
creator name
同上
date text
同上
debug=true|false
生成调试的swf文件,这个文件包括所有源文件的行数和文件名,当发生runtime错误时,这个错误跟踪将会显示错误的文件以及行号。缺省为false
debug-password string
用flash IDE时,使用远程会话调试密码。
default-frame-rate int
设置swf的帧率,默认24
default-script-limits max-recursion-depth max-execution-time
定义Swf的代码执行限制, max-recursion-depth指定flash player能够调用堆栈的最大深度。缺省值为1000。max-execution-time指定在flash player给定AS事件处理器挂起得最大等待时间,默认为60秒。
default-size width height
定义Swf的尺寸,像素点为单位
defaults-css-files filename [, ...]
和每个Swc里面的defaults.css文件的作用一样。不同的是,不用每次改变后都打包成swc文件。Css文件以这种方式包含在输出里面比在swc里面有更好的处理性能。[高级处理]
defaults-css-url string
定义defaults-css-url
define=NAMESPACE::variable,value
定义一个全局常量,这个值在编译时期被计算,并作为常量保存在app,一个通常的用法是设置一个内联常量,在应用中根据常量判断是否包含代码块,最常用的是-define=CONFIG::debugging,true具体的代码中可以如下做:CONFIG::debugging {}.
description text
设定元数据。
dump-config filename
输出flex-config.xml编译选项mxmlc -dump-config myapp-config.xml
es=true|false
编译器是否适用ECMAScript v3的原型对象模型来允许动态重载原型属性。在原型对象模型里面,内置的功能可以作为原型对象的动态属性来实现。默认值为false。用ECMAScript v3的原型对象模型,在应用中可以不定义属性或者功能的类型。如果设置es为true,则必须设置Strict compiler option为false,否则,编译器会报错。如果设置es为true,则必须设置as3编译选项为false
externs class_name [...]
从链接中排除指定的类,这个选项提供编译时期对动态链接外部参考进行检查。
external-library-path path-element [...]
指定一系列的swc文件或文件夹来作为Rsl的外部链接。可以使用+=增加新的swc文件
fonts.advanced-anti-aliasing=true|false
设置在渲染字体的时候嵌入字体是否用先进的anti-aliasing。默认值为false。
fonts.languages.language-range lang range
这顶某个语言的Unicode settings的范围。
fonts.local-fonts-snapshot path_to_file
设置本地字体快照文件的路径。这个文件包含系统字体文件。
fonts.managers manager-class [...]
定义字体管理器,默认为flash.fonts.JREFontManager也可以使用flash.fonts.BatikFontManager。
fonts.max-cached-fonts string
设置服务器缓存的字体的最大数目。
fonts.max-glyphs-per-face string
设置每种字体face在服务器缓存的character glyph-outlines的最大数目。
frames.frame label class_name [...]
用一系列类名称来指定swf文件的帧标签。
generate-frame-loader=true|false
是否生成IFlexBootstrap-derived的装载类。
headless-server=true|false
设置编译器的headless.
help [list [advanced]]
打印帮助信息
include-libraries library [...]
链接swc文件里面的所有的类,不管是否已经使用。相对这个选项,library-path选项只是包含使用过的类。所以该选项一般用来指定资源绑定。
include-resource-bundles bundle [...]
指定资源绑定用来链接到资源模块。所有的资源绑定必须在源路径下。
includes class [...]
链接一个或多个类,无论这些类是否被参考。
incremental=true|false
设置是否增量编译.
isolate-styles=true|false
指定每个模块单独赋予样式。默认值为true
keep-as3-metadata=class_name [...]
指定定制的元数据。缺省情况下,编译器会使用Bindable,Managed,ChangeEvent,NonCommittingChangeEvent,Transient元数据。如果希望保留缺省的元数据。用+=进行增加定制的元数据。
keep-all-type-selectors=true|false
指定编译器是否保留一个swf文件中的所有样式表的类型选择器,即使有些类型没有使用。一般在模块应用中,主应用文件包含比较全的css定义,那么被装在的模块swf能够访问到主应用的css。
keep-generated-actionscript=true|false
定义是否保留生成的as类文件。生成的类文件包括stubs和编译器生成的类。一般生成的文件放在generated文件夹里面。缺省的生成文件名为filename-generated.as和filename-interface.as.
language code
设置元数据。
library-path path-element [...]
链接swc里面被参考或者使用的类到目标文件。该参数可以指定一个文件夹或者多个swc文件。缺省的值包括libs和libs/player下所有的swc。在配置文件中,可以设置library-path的append属性为true表示增加。
license product_name license_key
定义lincense key。
link-report filename
打印链接信息到特定的输出文件。Xml文件中包含
,,等标签。命令行输出的格式文件可以做为load-externs选项的输入。
load-config filename
指定定义编译选项的配置文件,在命令行里面书写的参数将会覆盖配置文件中的设置。配置文件中的相对路径都是指相对配置文件本身的路径。可以通过+=增加多个配置文件。
load-externs filename [...]
指定包含, , and xml文件,将在编辑成swf文件时,从链接中排除指定的内容。
locale locale[,...]
指定编译进swf的一个或多个locale。
localized-description text lang
设置元数据。
localized-title text lang
同上。
mxml.compatibility-version=version
指定编译兼容版本。目前支持4.0和3.0缺省值为当前编译器的版本。
mxml.minimum-supported-version=version_number
指定sdk的最小版本号。典型用于swc文件的生成。
mxml.qualified-type-selectors=true|false
Css的类型选择器是否应该有个全称的命名空间。默认值为true。
namespaces.namespace uri manifest
指定mxml文件的命名空间。指定uri和manifest的路径。
optimize=true|false
是否采用As3优化器。这个优化器能够通过优化字节码来减小文件尺寸,提高性能。默认为true。
omit-trace-statements=false|true
设置是否使trace语句将信息写到flashlog.txt文件
output filename
指定输出文件。
publisher name
指定元数据。
raw-metadata XML_string
定义raw元数据。比如contributor, creator, date, and description
resource-bundle-list filename
打印资源绑定列表到指定的文件。你能用这个结果文件作为include-resource-bundles选项的输入.
runtime-shared-libraries rsl-url [...]
指定运行共享库Rsl的列表,资源列表的文件(swf)可以取相对于主应用的路径的相对路径。
runtime-shared-library-path=path-element,rsl-url[,policy-file-url,failover-url,...]
指定Rsl位置。path-element参数是swc文件的位置rsl-url参数是rsl的uri,编译器将不会验证rsl是否存在。policy-file-url是crossdomain.xml的文件位置,crossdomain.xml授予从服务器上读取rsl的权限。
services filename
指定services-config.xml文件的位置。
show-actionscript-warnings=true|false
是否显示as警告。默认为true
show-binding-warnings=true|false
是否显示绑定警告。默认为true
show-invalid-css-property-warnings=true|false
是否显示css中不正确的组件的样式定义,比如,该组件没有该样式属性。.
show-shadowed-device-font-warnings=true|false
当用family name 嵌入和操作系统字体名相同的字体时,编译器会警告你shadowing系统字体。
show-unused-type-selector-warnings=true|false
当出现未使用的css类型选择器,编译器是否会发出警告。
source-path path-element [...]
添加目录或者文件到源路径。编译器将会搜索整个文件夹树下的mxml,as,css源文件,并将被参考或被使用的编译到目标文件。能够使用通配符。
源路径也作为include-classes和include-resource-bundles选项的输入。
如果源路径为空,则目标文件的路径作为源路径。
如果源路径不为空,而且目标路径是不是某个源路径的子文件夹,则目标路径也增加为源路径
static-link-runtime-shared-libraries=true|false
决定库是采用静态方式还是动态链接。如果设置true。那么将忽略rsl指定的选项。缺省为true。
strict=true|false
打印未定义的属性或者功能调用。默认为true.
target-player=player_version
指定目标文件需要的flash player的版本。
player_version格式为:主要版本.小版本.修订版。
theme filename [...]
指定主题文件列表。
title text
设置元数据。
use-network=true|false
是否使用网络服务,如果不适用的话,则应用可以访问本地文件系统,比如用XML.load方法装载文件。
use-resource-bundle-metadata=true|false
指定是否能用资源绑定。[ResourceBundle]
verbose-stacktraces=true|false
指定当运行时发生错误时,是否生成源代码(包括行号),该选项设置为true是必须同时设定debug=true
verify-digests=true|false
指定应用是否检测rsl文件的digest。
version
返回编译器版本号。
warn-warning_type=true|false
.
warnings=true|false
是否能够显示警告
另外可以手工指定编译swf的java_home,不依赖操作系统的变量定义,修改sdk目录里面的jvm.config文件,修改内容:
Java.home=C:/Java/jre
注意:是JRE文件夹目录,而不是JDK目录。确保其中的jre文件夹下的bin目录中要有java.dll文件。
========
命令行bat脚本编译swf http://blog.sina.com.cn/s/blog_73bed4520102vgrl.html
第0步,设置环境变量到flex sdk的目录下。如:D:\Program Files\Adobe Flash Builder 4.5\sdks\flex_sdk_4.6\bin
第一步,找到flex-config.xml文件
这个文件在flash builder 安装目录下的sdks/flex_sdk_4.6/frameworks里,复制一份,粘到自己的一个文件夹里(现在我放在d盘下)
第二步,修改flex-config.xml文件
(1)外面库路径.如果你的工程使用了外部库的.as文件,需要这样改:*************
E:\weiding\work\Client\engine
上面的engin主是我的外部类库文件夹
(2)增加swc库路径
在 节点下,增加
E:\weiding\work\Client\lib
lib就是flash builder中引用的swc文件目录
(3)修改相关路径。因为flex-config.xml文件是放在frameworks文件夹里的,现在你把它移出来的,很多相对路径下的文件都找不到了。需要到它们改成绝对路径:
下面是我改好的:
D:\Program Files\Adobe Flash Builder 4.5\sdks\flex_sdk_4.6\frameworks\libs
E:\weiding\work\Client\lib
D:\Program Files\Adobe Flash Builder 4.5\sdks\flex_sdk_4.6\frameworks/locale/{locale}
D:\Program Files\Adobe Flash Builder 4.5\sdks\flex_sdk_4.6\frameworks/libs/player
--------------------
D:\Program Files\Adobe Flash Builder 4.5\sdks\flex_sdk_4.6\frameworks\mxml-2009-manifest.xml
---------
D:\Program Files\Adobe Flash Builder 4.5\sdks\flex_sdk_4.6\frameworks/themes/Spark/spark.css
----------
D:\Program Files\Adobe Flash Builder 4.5\sdks\flex_sdk_4.6\frameworks/libs/player/{targetPlayerMajorVersion}.{targetPlayerMinorVersion}/playerglobal.swc
-------------
第四步,取消运行时共享库:
true
(原来是false)
第五步:开始编译
cmd输入:
mxmlc -load-config d:\flex-config.xml E:/weiding/work/Client/src/Main.as -output C:\wamp\www\client\Main.swf
这样就完成了
========
使用mxmlc在命令行编译.as代码 http://www.cnblogs.com/jiahuafu/p/4214632.html
在cmd命令行环境下,敲mxmlc出现
提示Error: could not find JRE和"Error: could not find Java 2 Runtime Envi
解决办法
系统属性》》》高级》》》环境变量》》》系统变量 Path的变量值后面加上c:\Program Files\Adobe\Flash Builder Beta\jre\bin(eclipse的java所在的路径)
例如我的
C:\Python27\;C:\Python27\Scripts;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\GtkSharp\2.12\bin;C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\4.6.0\bin;C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\jre\bin
还要在Administrator的用户变量新增俩个变量
classpath 值c:\Program Files\Adobe\Flash Builder Beta\jre\lib
JAVA_HOME 值c:\Program Files\Adobe\Flash Builder Beta\jre
例如我的
C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\jre\lib
C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\jre
Mxmlc参数选项
Mxmlc参数选项
描述
accessible=true|false
缺省值为false,表示是否具有访问性特征。
actionscript-file-encoding string
设置As文件的编码方式。actionscript-file-encoding=Shift_JIS
advanced
列表显示帮助高级选项mxmlc -help advanced
allow-source-path-overlap=true|false
检查一个源文件夹是否是另外一个源文件夹得子文件夹,这样让包名比较明确。
as3=true|false
是否用As3的对象模型,缺省为true。
benchmark=true|false
在标准输出打印详细的编译时间,默认为true
context-root context-path
设置{context.root}占位符的值,一般用于channel的定义,缺省为null
contributor name
在目标的swf文件中设置元数据。
creator name
同上
date text
同上
debug=true|false
生成调试的swf文件,这个文件包括所有源文件的行数和文件名,当发生runtime错误时,这个错误跟踪将会显示错误的文件以及行号。缺省为false
debug-password string
用flash IDE时,使用远程会话调试密码。
default-frame-rate int
设置swf的帧率,默认24
default-script-limits max-recursion-depth max-execution-time
定义Swf的代码执行限制, max-recursion-depth指定flash player能够调用堆栈的最大深度。缺省值为1000。max-execution-time指定在flash player给定AS事件处理器挂起得最大等待时间,默认为60秒。
default-size width height
定义Swf的尺寸,像素点为单位
defaults-css-files filename [, ...]
和每个Swc里面的defaults.css文件的作用一样。不同的是,不用每次改变后都打包成swc文件。Css文件以这种方式包含在输出里面比在swc里面有更好的处理性能。[高级处理]
defaults-css-url string
定义defaults-css-url
define=NAMESPACE::variable,value
定义一个全局常量,这个值在编译时期被计算,并作为常量保存在app,一个通常的用法是设置一个内联常量,在应用中根据常量判断是否包含代码块,最常用的是-define=CONFIG::debugging,true具体的代码中可以如下做:CONFIG::debugging {}.
description text
设定元数据。
dump-config filename
输出flex-config.xml编译选项mxmlc -dump-config myapp-config.xml
es=true|false
编译器是否适用ECMAScript v3的原型对象模型来允许动态重载原型属性。在原型对象模型里面,内置的功能可以作为原型对象的动态属性来实现。默认值为false。用ECMAScript v3的原型对象模型,在应用中可以不定义属性或者功能的类型。如果设置es为true,则必须设置Strict compiler option为false,否则,编译器会报错。如果设置es为true,则必须设置as3编译选项为false
externs class_name [...]
从链接中排除指定的类,这个选项提供编译时期对动态链接外部参考进行检查。
external-library-path path-element [...]
指定一系列的swc文件或文件夹来作为Rsl的外部链接。可以使用+=增加新的swc文件
fonts.advanced-anti-aliasing=true|false
设置在渲染字体的时候嵌入字体是否用先进的anti-aliasing。默认值为false。
fonts.languages.language-range lang range
这顶某个语言的Unicode settings的范围。
fonts.local-fonts-snapshot path_to_file
设置本地字体快照文件的路径。这个文件包含系统字体文件。
fonts.managers manager-class [...]
定义字体管理器,默认为flash.fonts.JREFontManager也可以使用flash.fonts.BatikFontManager。
fonts.max-cached-fonts string
设置服务器缓存的字体的最大数目。
fonts.max-glyphs-per-face string
设置每种字体face在服务器缓存的character glyph-outlines的最大数目。
frames.frame label class_name [...]
用一系列类名称来指定swf文件的帧标签。
generate-frame-loader=true|false
是否生成IFlexBootstrap-derived的装载类。
headless-server=true|false
设置编译器的headless.
help [list [advanced]]
打印帮助信息
include-libraries library [...]
链接swc文件里面的所有的类,不管是否已经使用。相对这个选项,library-path选项只是包含使用过的类。所以该选项一般用来指定资源绑定。
include-resource-bundles bundle [...]
指定资源绑定用来链接到资源模块。所有的资源绑定必须在源路径下。
includes class [...]
链接一个或多个类,无论这些类是否被参考。
incremental=true|false
设置是否增量编译.
isolate-styles=true|false
指定每个模块单独赋予样式。默认值为true
keep-as3-metadata=class_name [...]
指定定制的元数据。缺省情况下,编译器会使用Bindable,Managed,ChangeEvent,NonCommittingChangeEvent,Transient元数据。如果希望保留缺省的元数据。用+=进行增加定制的元数据。
keep-all-type-selectors=true|false
指定编译器是否保留一个swf文件中的所有样式表的类型选择器,即使有些类型没有使用。一般在模块应用中,主应用文件包含比较全的css定义,那么被装在的模块swf能够访问到主应用的css。
keep-generated-actionscript=true|false
定义是否保留生成的as类文件。生成的类文件包括stubs和编译器生成的类。一般生成的文件放在generated文件夹里面。缺省的生成文件名为filename-generated.as和filename-interface.as.
language code
设置元数据。
library-path path-element [...]
链接swc里面被参考或者使用的类到目标文件。该参数可以指定一个文件夹或者多个swc文件。缺省的值包括libs和libs/player下所有的swc。在配置文件中,可以设置library-path的append属性为true表示增加。
license product_name license_key
定义lincense key。
link-report filename
打印链接信息到特定的输出文件。Xml文件中包含,,等标签。命令行输出的格式文件可以做为load-externs选项的输入。
load-config filename
指定定义编译选项的配置文件,在命令行里面书写的参数将会覆盖配置文件中的设置。配置文件中的相对路径都是指相对配置文件本身的路径。可以通过+=增加多个配置文件。
load-externs filename [...]
指定包含, , and xml文件,将在编辑成swf文件时,从链接中排除指定的内容。
locale locale[,...]
指定编译进swf的一个或多个locale。
localized-description text lang
设置元数据。
localized-title text lang
同上。
mxml.compatibility-version=version
指定编译兼容版本。目前支持4.0和3.0缺省值为当前编译器的版本。
mxml.minimum-supported-version=version_number
指定sdk的最小版本号。典型用于swc文件的生成。
mxml.qualified-type-selectors=true|false
Css的类型选择器是否应该有个全称的命名空间。默认值为true。
namespaces.namespace uri manifest
指定mxml文件的命名空间。指定uri和manifest的路径。
optimize=true|false
是否采用As3优化器。这个优化器能够通过优化字节码来减小文件尺寸,提高性能。默认为true。
omit-trace-statements=false|true
设置是否使trace语句将信息写到flashlog.txt文件
output filename
指定输出文件。
publisher name
指定元数据。
raw-metadata XML_string
定义raw元数据。比如contributor, creator, date, and description
resource-bundle-list filename
打印资源绑定列表到指定的文件。你能用这个结果文件作为include-resource-bundles选项的输入.
runtime-shared-libraries rsl-url [...]
指定运行共享库Rsl的列表,资源列表的文件(swf)可以取相对于主应用的路径的相对路径。
runtime-shared-library-path=path-element,rsl-url[,policy-file-url,failover-url,...]
指定Rsl位置。path-element参数是swc文件的位置rsl-url参数是rsl的uri,编译器将不会验证rsl是否存在。policy-file-url是crossdomain.xml的文件位置,crossdomain.xml授予从服务器上读取rsl的权限。
services filename
指定services-config.xml文件的位置。
show-actionscript-warnings=true|false
是否显示as警告。默认为true
show-binding-warnings=true|false
是否显示绑定警告。默认为true
show-invalid-css-property-warnings=true|false
是否显示css中不正确的组件的样式定义,比如,该组件没有该样式属性。.
show-shadowed-device-font-warnings=true|false
当用family name 嵌入和操作系统字体名相同的字体时,编译器会警告你shadowing系统字体。
show-unused-type-selector-warnings=true|false
当出现未使用的css类型选择器,编译器是否会发出警告。
source-path path-element [...]
添加目录或者文件到源路径。编译器将会搜索整个文件夹树下的mxml,as,css源文件,并将被参考或被使用的编译到目标文件。能够使用通配符。
源路径也作为include-classes和include-resource-bundles选项的输入。
如果源路径为空,则目标文件的路径作为源路径。
如果源路径不为空,而且目标路径是不是某个源路径的子文件夹,则目标路径也增加为源路径
static-link-runtime-shared-libraries=true|false
决定库是采用静态方式还是动态链接。如果设置true。那么将忽略rsl指定的选项。缺省为true。
strict=true|false
打印未定义的属性或者功能调用。默认为true.
target-player=player_version
指定目标文件需要的flash player的版本。
player_version格式为:主要版本.小版本.修订版。
theme filename [...]
指定主题文件列表。
title text
设置元数据。
use-network=true|false
是否使用网络服务,如果不适用的话,则应用可以访问本地文件系统,比如用XML.load方法装载文件。
use-resource-bundle-metadata=true|false
指定是否能用资源绑定。[ResourceBundle]
verbose-stacktraces=true|false
指定当运行时发生错误时,是否生成源代码(包括行号),该选项设置为true是必须同时设定debug=true
verify-digests=true|false
指定应用是否检测rsl文件的digest。
version
返回编译器版本号。
warn-warning_type=true|false
.
warnings=true|false
是否能够显示警告
========