一、可以使用命令行 MXML 编译器 (amxmlc) 来编译 AIR 应用程序的 Adobe® ActionScript® 3.0
和 MXML 资源:
amxmlc [compiler options]
-- MyAIRApp.mxml
其中 [compiler options]
指定编译
AIR 应用程序所使用的命令行选项。
amxmlc 命令通过附加参数 +configname=air
调用标准 Flex
mxmlc 编译器。该参数指示编译器使用 air-config.xml 文件,而不是 flex-config.xml 文件。在其他方面,使用
amxmlc 与使用 mxmlc 相同。Flex 3 文档库中的《构建
和部署 Flex 3 应用程序
》介绍了 mxmlc 编译器和配置文件格式。
编译器加载的 air-config.xml 配置文件指定编译 AIR 应用程序通常所需的 AIR 和 Flex
库。您还可以使用本地项目级配置文件覆盖或添加全局配置的其他选项。通常,创建本地配置文件的最简便方式是编辑全局版本的副本。通过 -load-config
选项可以加载本地文件:
-load-config=project-config.xml
覆盖全局选项。
-load-config+=project-config.xml
向采用多个值的全局选项(例如 -library-path
选项)添加其它值。仅采用一个值的全局选项将被覆盖。
如果对本地配置文件使用特定命名约定,amxmlc 编译器会自动加载本地文件。例如,如果主 MXML 文件为 RunningMan.mxml
,则将本地配置文件命名为 RunningMan-config.xml
。
现在,您只需键入以下内容即可编译应用程序:
amxmlc RunningMan.mxml
由于 RunningMan-config.xml
的文件名与编译的 MXML
文件的文件名匹配,因此将自动加载该文件。
<!-- -->
amxmlc 示例
下面的示例演示如何使用 amxmlc 编译器。(只能编译应用程序的
ActionScript 和 MXML 资源。)
编译 AIR MXML 文件:
amxmlc myApp.mxml
编译和设置输出名称:
amxmlc –output anApp.swf -- myApp.mxml
编译 AIR ActionScript 文件:
amxmlc myApp.as
指定编译器配置文件:
amxmlc –load-config config.xml -- myApp.mxml
从其他配置文件添加其他选项:
amxmlc –load-config+=moreConfig.xml -- myApp.mxml
在命令行中添加库(除了配置文件中的已有库以外):
amxmlc –library-path+=/libs/libOne.swc,/libs/libTwo.swc -- myApp.mxml
在不使用配置文件的情况下编译 AIR MXML 文件 (Win):
mxmlc -library-path [AIR SDK]/frameworks/libs/air/airframework.swc, ^
[AIR SDK]/frameworks/libs/air/airframework.swc, ^
-library-path [Flex 3 SDK]/frameworks/libs/framework.swc ^
-- myApp.mxml
在不使用配置文件的情况下编译 AIR MXML 文件(Mac OS X 或 Linux):
mxmlc -library-path [AIR SDK]/frameworks/libs/air/airframework.swc, \
[AIR SDK]/frameworks/libs/air/airframework.swc, \
-library-path [Flex 3 SDK]/frameworks/libs/framework.swc \
-- myApp.mxml
编译 AIR MXML 文件以便使用运行时共享库:
amxmlc -external-library-path+=../lib/myLib.swc -runtime-shared-libraries=myrsl.swf -- myApp.mxml
使用 Java 编译(将类路径设置为包含 mxmlc.jar
):
java flex2.tools.Compiler +flexlib [Flex SDK 3]/frameworks +configname=air [additional compiler options] -- myApp.mxml
flexlib 选项标识 Flex SDK 框架目录的位置,并使编译器能够查找 flex_config.xml 文件。
使用 Java 编译(未设置类路径):
java -jar [Flex SDK 2]/lib/mxmlc.jar +flexlib [Flex SDK 3]/frameworks +configname=air [additional compiler options] -- myApp.mxml
<!-- BEGIN USER PREFERENCES -->
<!-- END USER PREFERENCES -->
二、在flash builder中
关于AS里的RSL机制以及好处我就不说了,我说说复杂项目中的使用方法。
算是对他们文章的一个补充延伸吧。
我准备说的使用RSL方法,简单的说就是:事情分两步走
(1)flex编写代码的时候:使用设置为不嵌入代码
的.swc类库
(2)swf运行的时候:加载包含模块、类、代码、嵌入图片、声音等资源的.swf文件
——————-
如果你明白我上面的意思,并且在心里想说:我早就是这样做的!
呵呵,那也不需要再往下面看了^-^
—————————
<一>使用swf作为类库,常用方法存在的问题
先说说上面两位文章里讲的使用方法(以Y.Boy里的代码为例):
// 获得类引用
var AdobeClass:Class = getDefinitionByName(”cn.riahome.classes::Adobe”)
as Class;
// 新建实例
var adobe:* = new AdobeClass();
简单的项目可以这样做,相对复杂点的项目,比如多个模块开发,这样做就存在问题了:
1
想获得类引用,必须知道并且写正确类的命名空间以及类的类名
(写起来肯定麻烦,并且你拼写错了,编译器也不会报错,只有当运行的时候才会发现)
2 新建实例只能通过new 的方式,某些实现单例的方式就不能用
(如果AdobeClass类是单例,你想获得单例,你写AdobeClass.getInstance()编译器就报错了)
3 编写代码时没有代码提示,用起来麻烦。
并且还有…此出省略一万五千字
<二>介绍RSL类库的新使用方法
(1) 先获得RSL的源材料:swc和swf
1 把你的类、资源等做成swc(或者是别人开发的swc)
最简单的方法是Flex
里新建
Library project工程
2 新建一个as工程,就一个任务:引入刚才制作好的swc的各个类及资源
发布这个工程,获得swf
(2) 编写项目模块(ActionScript Modules)代码时使用swc
1 在你的项目里,设置项目属性,添加外部库路径,把得到的swc添加进来
Properties -> ActionScript Build Path -> Library path -> add
SWC
2 设置swc的连接类型为外部
(这是最重要的一步)
点刚才加入的swc前面的’+'号,双击 Link Type: Merged into code 这一项,在弹出的窗口中,将Link
Type设置成External。
Flex实际复杂项目中RSL运行时共享库的使用方法
这样设置swc,你编写代码的时候,你的类,你的资源,就可以像正常导入进来一样,自由使用。
编写的时候也有代码提示,甚至你的代码里都出现了 import
cn.riahon.classes.Adobe,类不管是什么随便用,但在发布的时候却不会把这个类以及swc里所有的资源类编译进去。
(发布的时候其实不存在这些类,可以理解成暂时性的“欺骗”了flash)
(3) 运行时加载swf获得类库
主swf运行的时候,使用Loader加载包含类库的 swf Libs文件(第一步得到的那个swf),从而引入libs里的类。
你可以觉定加载的类库所放入的作用域ApplicationDomain,以便在不用的时候可以把加载的类给删除掉。
加载完swf以后(Event.INIT
事件
后),你就可以使用这个各个类。
如果是模块开发,这个时候可以再去加载使用到这些类的模块。
(总之,一定确保在没有加载完之前千万不要使用)
分享到:
相关推荐
本示例中,我们看到一个Flex应用通过使用ActionScript 3来从外部XML文件加载数据,并将这些数据用于创建图形界面元素。 首先,XML文件的结构对于正确解析至关重要。在示例中没有给出具体的XML文件内容,但我们可以...
在Flex中,导入和导出功能是常见的需求,尤其是在处理用户数据或与外部数据源交互时。标题“Flex不需要服务器支持导入导出”表明我们可以使用Flex技术在客户端实现数据的导入和导出功能,而无需依赖服务器的参与。 ...
7. **库集成**:学习如何导入和使用外部库,理解库的API文档,以及如何解决库使用过程中遇到的问题。 8. **自定义扩展**:根据项目需求,可能需要对库进行扩展或修改,以满足特定的功能需求。 最后,如果你无法...
1. **导入SWC库**:将下载的IFrame组件中的`bin`文件夹下的`swc`资源(例如`flex-iframe-1.5.1.swc`)导入到Flex项目的`lib`文件夹下。 2. **更新AC_OETags.js文件**:将解压后的`asdoc`文件夹下的`AC_OETags.js`...
在使用flex-iframe-1.4.6时,开发者需要了解如何将库导入到他们的Flex项目中,这通常涉及到添加库的SWC文件到构建路径或者通过MXML或ActionScript代码引用库中的类。同时,理解如何使用提供的API来创建、配置和控制...
这篇博客(尽管链接无法直接查看)可能详细介绍了如何在Flash CS6中导入外部的SWC文件,并在AS3项目中使用这些内置的工具包。 首先,SWC文件是Adobe Flex编译器生成的库文件格式,它包含ActionScript类、资源和其他...
4. **3D库和组件**:了解如何导入和使用FlexCumulusTagCloud库,以及它的API接口和配置选项。 5. **图形渲染**:学习使用`flash.display`包中的类,如`Sprite`和`Shape`,以及3D变换如`rotateX`、`rotateY`和`...
7. `libs` - 库目录,可能包含了项目依赖的外部库或组件,如Flex框架库、第三方库等。 通过这些文件,开发者可以导入到Flex开发环境中,直接查看和学习日历应用的源代码结构,理解如何使用Flex和ActionScript来创建...
在Flex项目中,样式可以分为两种主要类型:内联样式和外部样式表。内联样式直接应用到组件上,而外部样式表则允许开发者在一个单独的文件中定义和管理多个组件的样式,实现代码的复用和更易于维护的设计。Flex样式...
在Flex项目中,`flex-iframe`库通常通过导入相关的AS(ActionScript)类来实现HTML内容的加载和显示。这些类通常会封装`IFrame`对象,使得开发者可以方便地控制iframe的属性,如加载的URL、大小调整、以及与主应用...
- 项目创建:讲解如何在FlexBuilder 3中创建新项目,设置项目属性,以及导入外部库。 - 调试技巧:包括断点设置、步进执行、查看变量值等,帮助开发者定位和解决问题。 - 资源管理:如何组织和引用图片、字体等资源...
7. `libs`:库目录,存放了项目所需的外部库或组件,可能是Flex SDK的一部分或者其他第三方库。 要运行和理解这个项目,你需要一个支持Flex的IDE,如Adobe Flash Builder或Eclipse带有Flex插件的版本。导入项目后,...
6. **数据管理**:Flex提供了多种方式来管理数据,如使用数组、集合、数据模型或外部XML文件。 #### 三、Flex应用程序的编译与发布 - **编译过程**:Flex应用程序被编译成SWF文件,并在Flash Player中运行。编译...
在Eclipse中,选择"Window" -> "Preferences" -> "Flash Builder" -> "Installed SDKs",点击"Add..."按钮导入你的Flex SDK目录。 三、创建Flex项目 1. 在Eclipse中,选择"File" -> "New" -> "Flex Project",填写...
项目文件包括源代码、资源配置、元数据以及库引用等。 在“Flex项目安装备份文件”中,备份至关重要,因为源代码是任何项目的核心。源码备份能防止意外的数据丢失,例如计算机故障、病毒攻击或代码误删。定期备份...
9. **libs**:这是一个库文件夹,包含了FlexView2.3所需的外部库和组件,这些资源可能被项目直接引用以提供额外的功能。 10. **html-template**:这可能是一个包含HTML模板的目录,用于生成Flex应用程序的容器页面...
首先,我们需要导入`NativeWindow`相关的库: ```actionscript import flash.desktop.NativeWindow; import flash.desktop.NativeWindowInitOptions; import flash.display.NativeWindowType; ``` 3. **创建...
- 使用`<style>`标签或外部样式表文件(.css)导入到Flex项目中。 2. **命名空间和类选择器** - Flex CSS需要指定命名空间,通常使用`mx:`或`s:`前缀,分别对应MX组件库和Spark组件库。 - 类选择器用于选择具有...
`exlibs`可能包含Away3D库和其他外部依赖的库文件,确保在项目中正确引用了Away3D引擎和其他必要的组件。 为了实现帧动画,开发者可能使用了以下步骤: 1. 导入Away3D库:在源代码中引入Away3D的核心库和帧动画...
在MXML文件中,我们需要导入`mx.containers.TabNavigator`类,以便使用选项卡导航器。这可以通过在MXML文件顶部添加以下代码完成: ```xml ``` 2. **添加选项卡**: 每个选项卡都对应一个子组件,可以是...