收藏 分享(赏)

Flex Builder教程.doc

上传人:11xg27ws 文档编号:7806461 上传时间:2019-05-26 格式:DOC 页数:27 大小:99KB
下载 相关 举报
Flex Builder教程.doc_第1页
第1页 / 共27页
Flex Builder教程.doc_第2页
第2页 / 共27页
Flex Builder教程.doc_第3页
第3页 / 共27页
Flex Builder教程.doc_第4页
第4页 / 共27页
Flex Builder教程.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、Flex Builder 教程一,概述Flex 语言包含了一个丰富的用户界面组件库,MXML(一种基于 XML 的标记语言)和 ActionScript(基于 ECMA 262 的、强类型面向对象编程语言)。MXML 用于排布用户界面和处理应用中其他方面的问题,而 ActionScript 用来处理用户交互逻辑。由于 Flash平台的普及, Flex 使开发者可以开发广泛的应用程序。开发者可以使用工业标准(如 XML,CSS 和 SVC)和他们所熟悉的模式和范例来创建应用。Flex 的分离协作方式和 Flex 公用组件模型也使得开发者和界面设计者能更好的进行协作,在可靠的、易于维护的架构上生产

2、出在用户体验方面有突破性的产品。 Flex Builder(FB)之于 MXML 就如 DREAWEAVER 之于 HTML。FB 实现了代码与界面分开,FLEX 的类程序扩展名为*.as,语法与 java/c+很象,FLEX 程序文件扩展名为.mxml,其实就是拥有很多特殊元素的 XML 文件。 二,使用 MXML 组件构建用户界面MXML 语言支持两种用户界面组件类型: 控件和容器。容器是包含控件和其他容器的屏幕的矩形区域。控件是表单元素, 如按钮、文本字段和列表框。 可以使用 Flex Component ExplorerFlex MXML 组件浏览工具来查看所有控件的代码和样例。 1,

3、加入常用可视控件: 使用可视控件组织界面,可以定义组件属性供外部访问 A, 基于文本的控件(Text controls): Label(单行文本显示)、Text(多行文本显示)、TextInput(单行文本显示与输入) 、 TextArea(多行行文本显示与输入)和 RichTextEditor (富文本显示与输入) 控件。用于显示文本和 /或接收来自用户的文本输入,都有一个 text 属性用于设置要显示的文本。使用 RichTextEditor 控件可以输入文本、编辑文本和设置文本格式。用户通过使用位于 RichTextEditor 控件底部的子控件, 应用文本格式和 URL 链接。 B,

4、基于按钮的控件组件(Button 系列,Form controls):Button(激活时会发出 click 和 buttonDown 事件)、LinkButton(用于打开 URL)、CheckBox(标签会被自动裁剪以适合控件边界。)、 RadioButton(指由 标签创建的组) 和 PopupButton 控件(常用于打开 List 控件或 Menu 控件签。 )。 2,加入基于列表的控件,并获取数据 基于列表的控件: 是在其继承层次结构内的某些点上扩展 ListBase 类的那些控件。它们包括 ComboBox、List、HorizontalList、DataGrid、Tile、Me

5、nu 和 Tree 控件。都可从某数据提供程序的数据获得数据列表。 另: 许多标准控件 (包括 ColorPicker 和 MenuBar 控件) 也是数据提供程序控件。 可以使用两种方法设置组件的数据提供程序: 1),直接在 MXML 标签中加入数据,将 Array 或 Collection 定义为取得数据提供程序的控件的子标签。该方法具有实施快速的优点, 适合与静态数据一起使用及用于原型设计。 2),使用数据绑定: 使用Bindable元数据标签(属性非默认绑定,必须明确的声明被绑定的属性),将控件绑定到使用 ActionScript 定义的现有 Array 或 Collection。 3

6、, 使用 REPEATER: 是非可视控件,类似于编程语言里的 For 循环,可在执行期复制其它组件。的卷标要自己输入,而 dataProvider 可在区段之中,以Bindable的 Metadata 定义之数组作连结。REPEATER 还可嵌套使用。 4, 加入数据验证:数据模型支持自动数据验证,这就意味着你可以很方便地使用 Flex 验证器。as3.0 验证的类包为 mx.Validators.包中有一个基类 Validator,其他的类都为其子类: 1),用标签实现验证: /绑定验证对象 :source:表示验证的对象,property:表示验证对象的属性2),用 AS 编程实现验证

7、还可以加入按钮触发器,并修改默认提示错误 /trigger:表示触发验证事件的对象/triggerEvent:表示对象触发验证事件的时机( 如 click,mouseOver 等)/requiredFieldError 属性 表示必填项没填入数据的时的提示错误信息/wrongLengthError:表示输入的数据阿拉伯数字长度小于 10 时提示的错误信息/invalidCharError:表示输入数据不是阿拉伯数字时提示的错误信息 3),高级用法: 使用正则表达式创建自定义验证器 5, 加入资源(图片,音频,视频 ,程序):运行时外载和编译时直接内嵌两种方式,外载方式要多花一段载入时间,但使用

8、简单;内嵌方式可直接调用资源,但加重了程序的负担(体积变大,且图片编辑后需要重新编译) 1),Image(图画)控件: 可外载或内嵌多种富媒体资源: JPEG、GIF、PNG 位图、SVG矢量图(只能内嵌 ) , SWF 动画(非 Flex 的 SWF 应用程序。 ),SWF 库按钮(Button),SWF 库动画(MovieClip) , /外载一个富媒体,可使用绝对或者相对路径。但加入 SWF 文件时,可用 use-network 参数指定其使用网络或者本地文件二者之一。/简单地内嵌一个富媒体.png,.jpg,.gif,.swf(可将嵌入的 SWF 文件的实例当作 MovieClip.M

9、ovieClipAsset 类的实例处理,不能直接访问嵌入的 SWF 文件的属性或方法。但可用 LocalConnection 以允许 SWF 之间进行通信。),.SVG(可将嵌入的 SVG 文件的实例当作 Sprite.SpriteAsset 类的实例处理。)/在脚本中定义富媒体对象,然后在 MXML 中可以多次嵌入/在脚本中定义图片的 scale-9 像框缩放功能就可以保持边框的清晰,(旋转嵌入的 scale-9 图像的实例会关闭该图像的 scale-9 功能。)。/嵌入 SWF 库资源2) 设置翻转的图片:使用 CSS 为外观外载/内嵌翻转的图像 可以定义一个现有的 CSS 类型选择器为

10、该类型的所有组件设置外观。还可以进一步创建自定义 CSS 类。 Button upSkin: Embed(“assets/box_closed.png“);overSkin: Embed(“assets/box.png“);downSkin: Embed(“assets/box_new.png“);3), SWFLoader 控件: 通常用来加入 Flex 应用程序(可以使用 AS 与其通信),当然也能用于加入 Image 控件所能加入的富媒体资源。 /外载入 SWF 程序/内嵌入 SWF 程序/还可以在 FDS 环境下加入 MXML 文件,要以 buttonicon.mxml.swf 形式加

11、入,以提示 FDS 编译该文件。4), 加入 MP3 音频: 您可以在 Flex 应用程序中通过使用Embed元数据标签嵌入 MP3文件并播放它。注意音频文件的体积要优化。 5), 加入字体: 您希望在 Flex 应用程序中嵌入一种字体并将它用作基于文本的组件的样式。 下面的示例创建引用嵌入的字体的 font-family 名称的一个类选择器。 接着它会创建一个 Text 控件并将其样式设置为该类选择器。 提示: 您在嵌入字体以节省文件大小时仅可以从字体添加某些字符, 方法是指定您的 font-face 声明的 unicode-range 属性。 font-face font-family:

12、Copacetix;src: url(“assets/copacetix.ttf“);unicode-range:U+0020-U+0040, /* Punctuation, Numbers */U+0041-U+005A, /* Upper-Case A-Z */U+005B-U+0060, /* Punctuation and Symbols */U+0061-U+007A, /* Lower-Case a-z */U+007B-U+007E; /* Punctuation and Symbols */.MyTextStyle font-family: Copacetix; font-si

13、ze: 24pt; 三,数据绑定以 MXML 标记来描述 UI,数据绑定(Data binding)来连接数据,这样就真正实现了 UI和程序逻辑的分离。Data binding 可以一绑多或者多绑一。 1, 在 MXML 中使用大括号 语句: 格式为:源对象. 属性。可直接传送给目标对象;高级用法是在中包含 AS 表达式、AS 函数或者 E4X 表达式 2, 在 MXML 中使用标签:这是语句的替代用法,格式为 :;高级用法是在标签中包含 AS 表达式或者 E4X 表达式 /在 Model 数据中使用 语句来绑定数据input1.text/用标签来绑定数据3, 使用 AS 类来绑定:使用 mx

14、.binding.utils.BindingUtils 的 bindProperty()或者 bindSetter() 方法 四,界面布局和导航容器定义了 Flash Player 的绘图表面的一个矩形区域。子容器包括控件和容器。Container 类是所有 Flex 容器类的基本类。扩展 Container 类的容器添加它们自己的功能以进行子组件布局。Application 容器是的 Flex 应用程序的唯一根部容器, 代表整个 Flash Player 绘图表面。 1,布局容器: 使用布局容器可进行用户界面布局。 A, 面板(Panel)容器 显示一个标题栏、一个标题、一个边框及其子级。默

15、认情况下, Panel 容器会对子组件进行垂直布局, 并且可以通过将布局属性设置为 “absolute“ 或 “horizontal“来覆盖此设置。 B, HDividedBox 容器 对子组件进行水平布局 , 除了在子级之间插入一个可调整的分割线之外, 它与 HBox 容器很相似。 VDividedBox 容器对子组件进行垂直布局, 而且也在子级之间插入一个可调整的分割线。 C, 平铺(Tile)容器 以多行或多列的形式排列其子级。 D, 表单(Form)容器 以标准的表单格式排列其子级。 E, ApplicationControlBar 容器 容纳提供全局导航和应用程序命令的组件, 并可以

16、停靠在 Application 容器的上边缘。 F, ControlBar 容器将控件置于 Panel 或 TitleWindow 容器的下边缘。 G, 另外可使用 Spacer 控件来辅助布局。Spacer 控件并非容器,而是基于百分比的可用于挤占留空以准确定位的一个不可见控件。 2, 导航容器: 使用导航容器可以控制其他容器的多个子级之间的用户移动或导航。导航器容器不能直接嵌套控件,只能嵌套容器。 A,手风琴(Accordion)容器 定义一个子面板序列, 但一次仅显示一个面板。 若要导航容器, 用户会单击与他们需要访问的子面板相对应的导航按钮。 使用 Accordion 容器, 用户可以

17、按任何顺序访问子面板以在表单中前后移动。 B, TabNavigator 容器 创建和管理一组选项卡, 使用它们可在其子级中间导航。 TabNavigator 容器的子级是其他容器。 TabNavigator 容器为每个子级创建一个选项卡。 当用户选中某个选项卡时, TabNavigator 容器会显示相关联的子级。 C, ViewStack 容器 由彼此堆叠在一起的子容器的一个集合组成 , 一次只有一个容器是可见的或活动的。 ViewStack 容器不为用户定义切换当前活动容器的内置机制;您必须使用 LinkBar、TabBar、ButtonBar 或 ToggleButtonBar 控件或

18、自己在 ActionScript 中构建逻辑让用户来更改当前活动的子级。 3, 使用容器 Containers 进行定位布局 定位方式有三种: A, 自动定位: 多数 Flex 容器使用默认预定义的规则来自动定位你在其中定义的所有的子组件。 B, 使用绝对定位: 用于使控件重叠 C, 使用基于约束的布局: 可以锚定容器的边缘或者中心点,然后控件就会随着容器的伸缩而伸缩 Canvas 容器,和 layout 属性为 absolute 的 Application 或 Panel 容器才能进行绝对定位,或约束布局。 4,使用视图状态(或 ViewStack 导航容器)进行用户界面切换导航 可以为一个

19、 Flex 程序或组件定义几种视图状态,然后通过改变(切换) 视图状态而改变用户界面。(ViewStack 导航容器可实现同样效果 ) 1),设计基础状态(Base state,Start,currentState=):就是在默认状态下设计用户界面。 2),设计视图状态(currentState=SomeState):在设计模式中,在状态查看(Window States)上点击新状态/New State 按钮。然后在此状态下编辑的界面即为该视图的对应界面。 3),创建用户行为切换控件: 定义用户变换状态的点击事件处理器。一般是使用一个 LinkButtun,激活 currentState=So

20、meState以切换到某界面,激活 currentState=以回到默认界面。 五,使用 CSS 格式化组件1. 文字横竖排列 Aligning Text Vertically 在 Flex 应用中不是必须对新派发的事件进行处理, 如果触发了一个事件 , 而没有对应的 Listener 时,Flex 忽略此事件. 如果想给 Event 对象添加新属性, 就必须继承 Event 类,然后定义新属性 3), 事件的传播 事件触发后, Flex 有 3 个检测事件监听器的阶段, 3 个阶段的发生的顺序如下: A. 捕获阶段: 在捕获阶段,Flex 在显示列表中检查事件的祖先是否注册了事件的监听器.

21、Flex 从根节点开始顺序而下. 大多数情况中, 根节点是 Application 对象. 同时, Flex 改变事件的 currentTarget 值. 缺省情况下, 在此阶段, 没有容器监听事件. use_capture 参数的值是 False,在此阶段添加监听的唯一方法是在调用 add_listener 时, 传入一个为 True 值的 use_capture 参数, 比如: myAccordion.addEventListener(MouseEvent.MOUSE_DOWN, customLogEvent, true);如果是在 Mxml 中添加监听, Flex 设置此参数为 Fals

22、e, 没有办法进行修改. 如果设置了use_capture 为 True, 那么事件将不会上浮. 如果既想捕获又想上浮就必须调用 addEventListener 两次. 一次 use_capture 参数为 true, 一次为 false; 捕获很少使用, 上浮的使用更为普遍. B. 目标阶段 : 在目标阶段, Flex 激发事件的监听程序, 不检查其他的节点. C. 上浮阶段: 事件只在 bubbles 属性为 True 时才进行上浮. 可以上浮的事件包括: change, click, doubleClick, keyDown, keyUp, mouseDown, mouseUp. 在上

23、浮阶段, Flex 改变事件的 currentTarget 属性, 而 target 属性是初始派发事件的对象 . 在任意一个阶段, 节点们都有机会操作事件. 比如: 用户点击了一个在 VBox 中的 Button,在捕获阶段, Flex 检查 Application 对象( 根节点)和 VBox 是否有监听器处理此事件. Flex然后在目标阶段触发按钮的监听器.在上浮阶段, VBox 和应用以与捕获阶段相反的顺序再次获得机会处理事件. 在 Actionscript3.0 中,你可以在任意目标节点上注册事件监听器 . 但是部分事件会被直接传给目标节点,比如 Socket 类. 捕获阶段的节点顺

24、序是从父节点到子节点的, 而上浮阶段刚好相反. 捕获事件缺省是关闭的,也就是说如果要捕获事件, 必须显式指定在捕获阶段进行处理. 每一个 Event 都有 target 和 currentTarget 属性, 帮助跟踪事件传播的过程. 4), 查询事件阶段 使用事件的 eventPhase 可以获得事件当前的阶段, 1): CAPTURE_PHASE 2): AT_TARGET 3): BUBBLING_PHASE 示例: private function determineState(event:MouseEvent):Void Debug.trace(event.eventPhase +

25、“:“ + event.currentTarget.id); 5), 停止传播 使用下面两个函数停止事件的传播: stopPropagation() stopImmediatePropagation() 2, 创建监听器 组件有 Flex 提供的内建事件. 也可以使用派发-监听模型定义自己的事件监听器 , 并指定监听器监听何种事件. 有三种方式: 1), 内部 MXML 中的 AS 函数法: 在 MXML 的声明中注册监听器: 这是第一个和使用最广泛的方法,在 MXML 中定义事件发生时会调用的事件处理程序。 2), 外部 AS 文件中的 AS 函数法 :通过 ActionScript 定义注

26、册事件处理程序: 可以通过使用 ActionScript 中的 addEventHandler() 等方法来注册事件处理程序。 可将 addEventHandler() 方法置于 Application 容器的 creationComplete 事件(在 Application 表单及其子级被初始化之后, 在启动应用程序时发生)的事件处理程序中。 详见 Action Script 教程。 3), 代码混写法: 在 MXML 的控件标签中直接完全嵌入监听器(这也称为使用线上事件处理程序): 这样比较直接,代码也较少,但会导致代码很难阅读、维护和缩放。如果监听器是多个 AS 语句甚至更复杂的逻辑,

27、不推荐此方法。 六,数据服务器访问概述Flex 被设计为可以与许多类型的服务器打交道,从而提供对本地和远端逻辑的访问。提供数据访问的 MXML 组件被称之为数据服务器组件(data service components)。MXML 包含了如下几种类型的数据服务器组件: 1. HTTPService 提供对返回数据的 HTTP URLs 的访问。通过 Http get/post 来传递纯文字资料。好处是非常普及于所有的后台,但缺点则是复杂的数据类型要经过复杂的序列化与解序列化程序才能在 client/server 间交换。 2. WebService 提供对使用 SOAP 的 web 服务器的访

28、问。WebService 也是很常见的选择,好处是规则共通,方便不同技术平台交换资料,缺点则同样是某些复杂数据结构无法轻易的交换,在编码与译码的过程中往往会出现意外,例如 Date 的表现方式。以 .NET 来说,使用 web service 应该是再方便不过的选择,只要把 asmx 档案准备好再从 flex client 呼叫即可。 3. RemoteObject(Flash Remoting) 技术: 官方支持的平台有三种,分别是 Java Coldfusion(但实际上 Coldfusion 应该只算是 java 的 subset,它是一种 scripting tag library)与

29、.NET 。Flex Data Services 或 Macromedia ColdFusion MX 7.0.2 通过使用 AMF 协议提供对 Java 对象(Java Beans、EJBs 、POJOs)的访问。 4,其它非官方 RemoteObject 技术: 由于 AMF 格式已被非官方反编译,所以有许多开源的 remoting 替代方案: A,AMFPHP: 这是 php 版的 remoting B,OPENAMF: java 版的 remoting C,Flap: Perl 与 Python 版的 remoting S,FlashORB: 商业版的 remoting 替代方案,目前

30、支持 java 与.net 七,HTTPService使用 plaine text format 的传输方式,通过 xml, loadVars, loadVariables 等方式 外部 XML 讀取 Actionscript 3.0 的賣點之一,就是加強 XML 讀取的方便性,讀取外部XML 是常用的前後端整合手段,而 XML 節點的操作,比之前 AS2 用 DOM 更直觀,可以直接運用標籤與屬性名稱訪問節點。 主要參考章節: Reading external XML documents Traversing XML structures Lesson 6: RETRIEVING XML D

31、ATA (37 min) 1. Setting Up an XML Data Project & Setting HTTP Service 2. Setting Up a DataGrid to Display XML Data 3. Adding a Label Control to a DataGrid 4. Using an ArrayCollection 5. Examining a Data Structure in Debugging Mode 6. Utilizing Data Returned in an Event Object 7. Using the HTTP Servi

32、ce Class to Catch Faults 8. Creating a Cross Domain Security File Lesson 13: MANIPULATING XML (34 min) 1. Manipulating Client Side Data Using E4X Syntax 2. Creating a Tree Control to Display the XML Data 3. Adding a Change Event to Display Data from the Tree 4. Populating the Shopping Cart with Raw

33、XML Content 5. Working with an XML List Collection 6. Using Conditional Logic to Compare & Update Values 八,WebServiceLesson 14: USING WEB SERVICES (25 min) 1. Accessing Web Services 2. Invoking Web Services Methods & Results 3. Using a FaultHandler 4. Call Multiple Methods from One Web Service Objec

34、t 5. Passing Parameters to Web Services 九,Flex Data ServicesFDS (Data Service, Messaging) Flex Data Service 是 Flex 2 里新出现的技术,主要目地是希望提供更自动的方法来让 client 与 server 交换资料,它的核心实际上仍然是 AMF 与 RTMP (对,就是 Flash Media Server 用的那种) ,部份功能也与 FMS 重叠,但它着重在 Data Sharing 与 Exchange 这部份。 目前 FDS 只有 Java 的版本,也就是 server 端要用

35、 java 写,但 Adobe 宣称将来会有 FDS for .NET 版。不过好消息是,有一家叫 theMidnightCoders 的公司抢先推出了 FDS 兼容版本,不但同时支持 AMF0 与 AMF3,更支持部份 FDS 的功能(主要是资料同步的部份,与 server 端的冲突处理与资料储存) 。 以 .NET 来说,付费的选择中 weborb 算是目前最优的选择,价钱只有官方版的一半,但功能更完整;而免钱的选择则当非 Fluorine 莫属。 功能描述:如果你有 Flex Data services,你可以发布一组 MXML 和 AS 文件,Flex Data Services 可以

36、在收到 Http 请求前,把你的 MXML 和 AS 文件编译成 Swf 文件。 Flex 执行以下步骤: 1 编译 MXML 并产生一个 SWF 文件 2 贮藏已编译的 MXML 文件 3 向安户端返回 SWF 文件 发布你的程序方法一:发布一个 SWF 文件 访问方法:http:/hostname/path/filename.swf 方法二:发布 MXML 和 AS 文件 访问方法:http:/hostname/path/filename.mxml FDS 在你的 Java 服务器上或者 Java 容器内运行。以保证在以下几个特征领域的广泛性 1多个客户端的数据共享 1 支持 C2C 的数

37、据通讯 2 服务器端数据增加 3 安户端访问服务器资源的证明 4 数据服务日志 2提高 RPC 的广泛性 十,其它 RemoteObject 技术现有许多非官方的开源 RemoteObject(Flash Remoting)技术,流行的服务端(Java、Php、.Net、Perl/Python 、Ruby)技术 Flex 都已打通,您可以直接在 Flex/Flash 中通过 RemoteObject 直接调用 A,AMFPHP: Flash 和 PHP 的整合 AMFPHP B,AMF.NET: Flex 调用不同参数类型的.Net WebMethod C,AMF:Perl D,RubyAmf

38、 E,与 JAVA: F,和 ASP 的整合:Flash2ASP 是能自动生成 ASP 和 AS 代码的工具。虽然 Flash2ASP作后台速度不如 AMFphp,但由于国内 ASP 资源丰富,而且 Flash2ASP 教程文档详细,也可作为一个选择。 在线版 说明图 55 分钟详细使用方法以及留言簿范例视频教程 本地运行版下载(exe) 详细情况 十一, 创建自定义组件1, Flex 是由 as 类结构实现的。类结构包含了组件类,管理类,数据服务类,和其他用来实现 flex 功能的类。下图展示的是类结构中 flex 可视化组件的一部分,关于控制和容器的部分: 所有的可视化组件继承自 UICo

39、mponent as 类。Flex 中非可视化组件也是依靠 as 类结构来实现的。大部分的非可视化组件都是 Validator,Formatter,或者是 Effect 类。 通过使用 mxml 和 as 语言扩展 Flex 类结构来创建自定义的组件。组件都继承了父类的属性,方法,行为,风格和效果。 通过 as 创建一个 flex 组件时,必须继承自一个 flex 类。类的名称必须和类文件的名称相同。子类继承了父类的所有属性的和方法。在 mxml 中使用这个组件时,通过使用类名称的标签来引用。例如,类名称是 myASButton,文件名则为 myASButton.as,在 mxml 中使用标签

40、来使用组件。 在通过 mxml 创建一个组建时,flex 编译器将自动的生成一个 as 类。mxml 文件的名称必须和 as 类名称相同。同样,在 mxml 中使用这个名称标签来使用这个组件。 下图展示了分别通过 as 和 mxml 创建的 Flex Button 组件的自定义组件: Button.asMyASButton.aspackagepublic class MyASButton extends Button/Override inherited methods and properties./Define new methods and properties./Define cust

41、om logic in ActionScript./Override inherited methods and properties./Define new methods and properties./Define custom logic in ActionScript.上面的两种实现方法都生成了一个 Button 类的子类。同样的继承了所有的属性,方法和button 类的所有元素。都可以重写类的属性,方法和逻辑。 注意:父类中的变量是不能被覆盖,但是可以覆盖通过 setter 和 getter 方法实现的属性。你可以重新设置这些变量的值。 另外,如果使用 mxml 创建组建,flex

42、 编译器完成了创建一个组件的子类的大部分工作,因此使用 mxml 创建组件比用 as 创建组件更加容易。 2, 决定是使用 mxml 还是 as 创建组件 在创建组件之前需要做的一个首要决定是,使用 as 还是 mxml。由你需要开发应用程序来决定你需要使用什么样的组件。 下面是一些基本的指导方针: mxml 和 as 组件都定义了新的 as 类。基本上所有能用 as 完成的自定义组件都可以通过mxml 来实现。一般来说,对于简单的自定义组建,例如修改已有组建的一些属性和方法,使用 mxml 要比使用 as 方便得多。当你在新的组件中使用了别的组建,而且需要使用 flex layout 容器来

43、进行多个组件的布局设置,那么需要使用 mxml 来定义。如果你想修改某一个组件的行为,例如一个容器中子元素的布局方式,则使用 as。如果你想通过创建UIComponent 的子类来创建一个全新的可视化组件,则使用 as。如果你想创建一个全新的非可视化组件,例如 formatter,validator ,或者 effect,则使用 as。注意:Flash Professional 8 是不能开发 AS3.0 的组件的,如果要使用 AS3.0 开发 Flex2 组件,应该使用 Flex Builder IDE。 3, 组件部署 在部署你的 mxml 或 as 文件的自定义组件时,一般将这些文件放置

44、在你的应用程序的子目录内,或者一个定义好的 as 类路径下。 为了保密,你可能不希望使用源码的形式来部署你的源文件。因此你可以使用 swc 文件或者共享资源库(RSL)作为用来部署的文件。 Swc 文件是 Flex 组件的一种集合格式。使用 swc 文件可以方便的在开发人员之间进行交流,这样你使用使用一个文件,而不是很多 mxml,as 文件,或者图片和其他资源。更重要的是,swc 文件中的 swf 已经被编译了,这意味着你不用看着繁杂的代码。 Swc 文件可以包含多个组件,使用 PKZip 打包格式将其打包在一起。你可以使用 winzip,jar 或者任何打包工具来打开这个文件。但是,一般来说不要直接在 swc 外部运行打包在 swc 里面的 swf 文件。 创建 swc 文件,需要使用 compc 工具,该工具在 flex 安装目录下的 bin 目录内。compc 工具可以将 mxml 文件,或 as 文件,或两种文件一起,打包成 swc 文件。 要缩小你的 swf 格式的应用程序的大小,有一种方式是将共享资源打包到文件外部,由 client 下载并保存在缓存中。这些外部职员可以在程序运行的时候多次被使用,但是只需要从服务器传输到 client 端一次。这些文件就是共享资源库(RSL)。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报