目前部署了Flex,提供主机或者虚拟主机很少,在国内尚未看到.当然你自己架设服务器不包括在内,这样意味着使用mxml在服务端实事生成swf难以实现.我们制作的Flex作品就没有使用的地方了吗?答案是否定的.
在Flex的安装目录中,在bin下面有个 mxmlc .exe,类似于javac.exe.他就是将mxml文档编译成我们需要的swf文件的工具..
在cmd中运行她..出现使用方法
Usage: mxmlc [-version] [-configuration path] [-flexlib path] [-libpath path] [-systemclasses path] [-g] [-O0] [-profile] [-o path] [-headless] [contextroot root] [-proxyurl url] [-proxyhttpsurl url] [-proxyallowurloverride] [-gatewayurl url] [-gatewayhttpsurl url] [-remoteallowurloverride] [-webroot directory] [-aspath path] [-genlibdir dir] [-encoding file_encoding] [-namespace uri manifestfile] [-report] [-loglevel error|warn|info|debug] [-debugpassword password] [-accessible] [-batch] foo.mxml
经过网上搜索资料..和不断的测试,终于得出最好方法,只要使用下面参数就可以编译出swf,并且可以发不到网站使用.
mxmlc .exe -proxyurl http://* mxml文档绝对路径
这样就会在同mxml目录生成同命swf文件.可以供我们使用了..
但接下来的问题是编译时如何提高效率...难道每次都要在cmd下转到Flex\bin目录下 执行编译参数吗?非也.
我们来个将 mxmlc 关联到mxml文件..只要双击目标mxml文档就可以开始编译.
1)将处理参数写入批处理..将下面代码保存为c.cmd
@echo off
D:
cd "D:\Program Files\Macromedia\Flex\bin"
:c
cls
mxmlc .exe -proxyurl http://* %1
if errorlevel=1 goto retry
exit
:retry
echo Retry Now?
pause
goto c
2)关联到mxml文档到右键菜单...将下面代码保存为mxmlfile.reg
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.mxml]
@="mxmlfile"
[HKEY_CLASSES_ROOT\mxmlfile]
"EditFlags"=dword:00000000
"BrowserFlags"=dword:00000008
@="Flex 文件"
[HKEY_CLASSES_ROOT\mxmlfile\Shell]
@="Compile_to_swf"
[HKEY_CLASSES_ROOT\mxmlfile\Shell\Compile_to_swf]
@="使用 Flex mxmlc 编译"
[HKEY_CLASSES_ROOT\mxmlfile\Shell\Compile_to_swf\command]
@="\"D:\\Program Files\\Macromedia\\Flex\\bin\\c.cmd\" \"%1\""
将这几个文件放到D:\Program Files\Macromedia\Flex\bin,然后双击mxmlfile.reg,导入注册表,就可以使用了.方便快捷!
注意:本问中Flex安装在D:\Program Files\Macromedia\Flex 如果你是默认安装的话,请将盘符D改为C,或者读者自己使用的目录
=====================================================================
在Flex的安装目录中,在bin下面有个 mxmlc .exe,类似于javac.exe.他就是将mxml文档编译成我们需要的swf文件的工具..
在cmd中运行她..出现使用方法
Usage: mxmlc [-version] [-configuration path] [-flexlib path] [-libpath path] [-systemclasses path] [-g] [-O0] [-profile] [-o path] [-headless] [contextroot root] [-proxyurl url] [-proxyhttpsurl url] [-proxyallowurloverride] [-gatewayurl url] [-gatewayhttpsurl url] [-remoteallowurloverride] [-webroot directory] [-aspath path] [-genlibdir dir] [-encoding file_encoding] [-namespace uri manifestfile] [-report] [-loglevel error|warn|info|debug] [-debugpassword password] [-accessible] [-batch] foo.mxml
经过网上搜索资料..和不断的测试,终于得出最好方法,只要使用下面参数就可以编译出swf,并且可以发不到网站使用.
mxmlc .exe -proxyurl http://* mxml文档绝对路径
这样就会在同mxml目录生成同命swf文件.可以供我们使用了..
但接下来的问题是编译时如何提高效率...难道每次都要在cmd下转到Flex\bin目录下 执行编译参数吗?非也.
我们来个将 mxmlc 关联到mxml文件..只要双击目标mxml文档就可以开始编译.
1)将处理参数写入批处理..将下面代码保存为c.cmd
@echo off
D:
cd "D:\Program Files\Macromedia\Flex\bin"
:c
cls
mxmlc .exe -proxyurl http://* %1
if errorlevel=1 goto retry
exit
:retry
echo Retry Now?
pause
goto c
2)关联到mxml文档到右键菜单...将下面代码保存为mxmlfile.reg
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.mxml]
@="mxmlfile"
[HKEY_CLASSES_ROOT\mxmlfile]
"EditFlags"=dword:00000000
"BrowserFlags"=dword:00000008
@="Flex 文件"
[HKEY_CLASSES_ROOT\mxmlfile\Shell]
@="Compile_to_swf"
[HKEY_CLASSES_ROOT\mxmlfile\Shell\Compile_to_swf]
@="使用 Flex mxmlc 编译"
[HKEY_CLASSES_ROOT\mxmlfile\Shell\Compile_to_swf\command]
@="\"D:\\Program Files\\Macromedia\\Flex\\bin\\c.cmd\" \"%1\""
将这几个文件放到D:\Program Files\Macromedia\Flex\bin,然后双击mxmlfile.reg,导入注册表,就可以使用了.方便快捷!
注意:本问中Flex安装在D:\Program Files\Macromedia\Flex 如果你是默认安装的话,请将盘符D改为C,或者读者自己使用的目录
=====================================================================
我没有成功 我是FB2.0.1 老出现unknown configuration variable ‘proxyurl’
使用Flex 2 Sdk编译as3.0
许多人已经知道可以使用flash9预览版编译as3.0.但可能有两种不能或不愿意使用Flash9预览版编译as3.0.比如,目前使用的是2003系统,还有一种是专门做开发的程序员.目前Flex 2的试用版有30天的限制.下面我们要说的是不使用Flex builder 2 或Flash 9 professional来编译as3.0. 1.首先先获取编译器. 先要从adobe下载Flex 2 sdk编译器,如果你已装了flex builder 2 试用版.那么这个编译器就已经存于你的机器上了.它的位置为: C:\Program Files\Adobe\Flex Builder 2\Flex SDK 2\bin\mxmlc.exe 如果你没装Flex builder 2 .而用的是Flex 2 sdk.路径约是这样. 盘符>\bin\mxmlc.exe 现在你已经知道了,我们要用的是mxmlc.exe 这个编译器. 2.java运行环境的设置 mxmlc.exe编译器的运行需要java2的运行环境.所以如果你需要安装java 2 的运行环境.如果你已经安装了Flex builder 2 那么java 2的运行环境应是已配置好的.不过有一点你需要注意一下,在你的电脑上查看一下你的java 环境变量是否已经设置了,如果没有设置需要设置. 3.拖放式编译 如果你的java环境已经设置好了.接下来的工作就简单了.你只需要将你编写的as3类文件拖放到mxmlc.exe上,那么mxmlc.exe就会自动启用并编译as3.0类.但你会发现一个dos窗口打开,编译完成后随即关闭了.这是因为mxmlc.exe是一种command_line命今行编译.那么这里可能就会出现一种情,如果有错误提式的时候我们并不能看到它.那么我们可以用下面的方法. 4.批处理方式编译 在下面的附件中包有一个批处理文件和类文件,是供你测试时使用的.批处理文件名为make.bat.在使用之前,你需要打开它,在SET mxmlcPath=后输入你的mxmlc.exe所在的路径,你只需要将你编写的As3.0文件拖动到批处理文件上.你会发现出现一个dos窗口,并显示编译的过程,如果有错误也会显示在这个dos窗口中.与些同时你也会发现它自身会创建一个与你的as3.0类同名的一个批处理,如我的类名为HelloWorld.as那么它会自动生成一个批处理名字为HelloWorld.bat.假设在编译时出错,在你修改完后,你只需要再次双击执行自动生成的批处理文件HelloWorld.bat即可. 呵呵,如果你不想用Flash9 或是没有Flex 2那就试试吧.注意一点java 2的运行环境变一定要先配置好.如果你装了Flex builder 2 你可以在安装目录下找到jre包,指向这个包也可以. make.bat批处理的内容: 引用: @ECHO off REM ------Description------------------------------------------------------ REM Drag your .as file onto this .bat to create a new .bat that will REM compile and, if compilation successful, open the resulting swf. REM ----------------------------------------------------------------------- REM ------User-Variables--------------------------------------------------- REM mxmlcPath: Path to mxmlc command line compiler. You may need REM to change this based on your installation SET mxmlcPath="F:\flex2 and As3.0\flex_sdk_2\bin\mxmlc.exe" REM opts: Command line options for mxmlc if any. You can get a list REM of the available options from: REM http://livedocs.macromedia.com/labs...x/00001191.html REM or by running: REM mxmlc.exe -help list advanced details REM in the command prompt (properly referencing mxmlc.exe) SET opts=-benchmark=true -creator="Trevor McCauley" REM ----------------------------------------------------------------------- REM Generate .bat code and save to file ECHO @ECHO OFF ^& (IF EXIST "%%~dp0%~n1.swf" (DEL "%%~dp0%~n1.swf")) ^& %mxmlcPath% %opts% -file-specs "%%~dp0%~nx1" ^& (IF EXIST "%%~dp0%~n1.swf" (CALL "%%~dp0%~n1.swf") ELSE (PAUSE)) > "%~dpn1.bat" REM Immediately execute the generated bat @ECHO on CALL "%~dpn1.bat" ======== 这里说的拖拽可以实现编译 但是批量我还是实现不了 好郁闷!! 转自:http://bbs.9ria.com/forum.php?mod=viewthread&tid=2708&highlight=mxmlc |