flex2 SDK学习笔记
[作者:来自网络][日期:2007-12-28][导航:Flash教程 >> Flex >> flex2 SDK学习笔记]
今天重新的从Adobe网站上下载了Flex2 SDK。因为很多时候需要在非windows平台上使用flex,因此决定不使用flex builder2,而是从flex2 SDK开始。
SDK包的目录结构:
bin/
包含了以下的命令行工具:mxmlc,compc和fdb。这些工具可以用来编译和调试Flex应用程序和组件。
frameworks/
包含了framework.swc的文件和源码,以及其他可用于编译Flex应用程序的文件。
players/
包含了调试版本的Flash Player。
lib/
包含了用于编译的jar包。
samples/
三个例子。包含了sample应用程序的源码。可以通过运行build-samples.bat(windows)或build-samples.sh(Mac或Unix)来成生SWF文件。 大概要花几分钟的时间来编译。不知道为什么要这么久。
使用compc可以将as文件,mxml文件,以及其他的图片,swf或swc等文件,来编译生成swc文件。
使用mxmlc可以同样的使用上面的文件编译成swf文件。swc文件在编译成生swf时可以当作组件、主题以及动态共享资源库(runtime shared libraries, RSLs)使用。
mxmlc的基本使用语法如下:
mxmlc [options] -file-specs target_file|dir […]
file-specs属性是必须的默认属性,标识了需要编译到swf文件中的目标mxml文件。
要查看mxmlc的属性列表,可以使用下面的方法:
mxmlc -help list
要查看包括高级属性在内的所有mxmlc的属性,使用下面的方法:
mxmlc -help list advanced
mxmlc的默认输出是filename.swf。filename是源应用文件的名称(root application file)。默认的文件输出路径是和目标文件同一目录,但是你可以在output属性中设置自己想要的路径。
mxmlc命令行编译器不生成任何HTML文件。你必须创建你自己的html文件来加入这个swf文件。
mxmlc使用了在flex-config.xml文件中定义的设置参数。该文件位于flex安装目录下的frameworks目录,你可以修改里面的属性,或者使用自己定义的属性文件。
关于自定义mxmlc配置文档:
配置文件可以被用于任何命令行编译器,flex builder和web-tier编译器。
Flex包含了一个名为flex-config.xml的默认的配置文件。这个文件包含了swf编译器和swc编译器的大部分设置属性。你可以修改这个文件,或者自定义一个配置文件。
在Flex数据服务中,这个文件位于WEB-INFO/flex目录下。在Flex SDK中,这个文件位于flex安装目录下的frameworks目录中。
Flex builder编译器默认的是不许要这个配置文件的。默认的配置属性被保存在builder内部。你可以创建一个配置文件,然后通过builder的load-config功能将这个配置文件加载进去。在flexbuilder的安装目录下的Flex Framework 2/frameworks目录中,有这个默认配置文件的副本。
你可以使用-dump-config命令来修改配置文件,方式如下:
mxmlc -dump-config myapp-config.xml
myapp-config.xml是你想要使用的配置文件。
要使用高级设置,使用下面的方法:
mxmlc -advanced -dump-config myapp-config.xml
命令行编译器的基本语法
命令行语法
mxmlc和compc编译器有许多编译选项,这些选项可以通过help查看,如:
mxmlc -help
大多数情况下,你只需要罗列出基本的主要的选项,如:
mxmlc -help list
要想查看高级选项,如:
mxmlc -help list advanced
参看 mxmlc完整选项 和 compc 完整选项。
一些类如show-coach-warnings和accessible选项,只有true和false两个值,可以通过下面的方法直接指定:
mxmlc -accessible=true -show-coach-warnings=true
一些选项,比如source-path,具有一个或以上的可用值。你可以通过查看help输出来找到哪些选项是有多个值的。用方括号([])扩起来的选项是可以有一个或一个以上的值。
在使用有个多值的选项时,使用空格或逗号来分隔。如:
-var val1 val2
或
-var=val1, val2
如果是使用空格来分隔,需要使用两个连接符号来表示列表的结束,如:
-var val1 val2 — -next_option
如果使用逗号来分割,则不需要连接符号。如:
-var=val1, val2 -next_option
默认选项将自动的作为多属性的终止符。mxmlc的默认选项是file-specs,指定想要编译的mxml文件。如果这个选项被置于整个选项列表的最后,则不会被当作上一个选项的列表值。如:
mxmlc -source-path path1 path2 path3 foo.mxml
默认的compc选项是include-classes
下面这个例子是按照Flex2帮助文档依葫芦画瓢完成了,基本上理解了使用mxmlc的思路。
第一步,创建as类文件。
创建一个testas.as的文件,内容如下:
package {
public class testas{
public var userName:String;
public var greeting:String;
public function testas(inputName:String) {
userName = inputName;
greet();
}
public function greet():void {
greeting = “Hello, ” + userName + “.”;
}
}
}
第二步,创建mxml文件。
创建一个test1.mxml文件,内容如下:
< ?xml version="1.0" encoding="utf-8"?>
layout="vertical"
creati >
< ![CDATA[
public var myTest:testas = new testas("TangBin");
public function startUp():void {
mainText.text = myTest.greeting;
}
]]>
因为我没有学习过Flex1.5,所以用了一点时间来理解这个mxml文件的意思。
最后,使用mxmlc编译。
我没有修改配置文件,因此在编译的时候,需要将编译器的选项加上去。如下:
mxmlc -source-path [as类的路径] -file-specs test1.mxml
这里没有包含相对路径。
在Flex2的帮助文档中的选项列表里面,source-path前面是没有“-” 的,但是我试了几次以后,发现必须使用-才能正常的找到路径。
编译的结果是在test1.mxml文件同目录生成了一个test1.swf的文件。双击文件可以看到结果。
当然,如果是在做一个项目的时候,可能需要加入很多的类路径,swc路径或其他的很多参数,在这种情况下,可以生成一个新的编译配置文件,将需要编译的mxml文件路径,as类路径,swc路径,以及输出目录等各种参数在配置文件中设置好,然后直接使用mxmlc就可以编译。这样要方便许多。
现在根据我的理解来看一下这些代码。
as文件主要是作了逻辑处理,mxml文件主要是让代码开始执行,设置main,然后设置layout的方式。界面组件也是在mxml中创建的。因此在新的flex2 swf app的源码中,as主要是做逻辑控制以及数据模型的设置,而mxml主要是用来做为界面生成和控制等。
这样理解在一些方面无法得到很好的解释,需要继续下一步学习。
[文章热度:]
上一页:Flex mp3播放器实例下载
下一页:Flex与 J2EE进行交互 学习笔记