1、开发 Flex 应用程序的典型步骤如下(通常是这样):1. 选取一系列预先定制好的、用于设计应用程序界面的组件(如表格、按钮等等)2. 布置组件以设计用户界面。3. 使用样式和主题来增强视觉方面的设计。4. 添加动态行为(例如程序部件之间的相互作用) 。5. 定义并连接所需的数据库服务。6. 将源代码编译成 SWF 文件,然后在 Flash Player 中运行。Json 格式的数据交互package com.tangimport mx.controls.Alert;import tt.Amf;import tt.util.JAVAInterFace;public class Test3pub
2、lic function Test3()public function test1(param:String , callback:Function):voidvar amf:Amf = new Amf();tryamf.ConnectRemotingV(tt.util.JAVAInterFace.url,“test.Test3.test“,callback,param);catch(e:Error)Alert.show(e.getStackTrace();finally在没有封装 as 时的交互?xml version=“1.0“ encoding=“utf-8“?mx:Applicatio
3、n xmlns:mx=“http:/ layout=“vertical“creationComplete=“jsonservice.send()“mx:Script!CDATAimport mx.rpc.events.ResultEvent;import com.adobe.serialization.json.JSONDecoder;private function onJSONResult( event:ResultEvent) : void var data:String = event.result.toString();data = data.replace( /s/g, );var
4、 jd:JSONDecoder = new JSONDecoder( data );dg.dataProvider = jd.getValue();/mx:Scriptmx:HTTPService id=“jsonservice“url=“http:/localhost:8080/jsp-examples/flexds/json.jsp“resultFormat=“text“ result=“onJSONResult(event)“ /mx:Panel title=“Stock Data “ width=“100% “ height=“100% “mx:DataGrid id=“dg“ wid
5、th=“100%“ height=“100%“mx:columnsmx:DataGridColumn dataField=“compa “ /mx:DataGridColumn dataField=“compb “ /mx:columns/mx:DataGrid/mx:Panel/mx:ApplicationFlex 数据绑定 现在数据库或是某个文件里有一些数据需要显示在界面上该怎么办呢?我们的目的就是将这些数据设法放到界面上去可以显示出来,这个将数据放到界面上去的过程可以叫住 Flex数据绑定。在 Flex 应用中程序中,Flex 数据绑定的实际是借助事件机制来完成的,当目标使用 Flex数
6、据绑定的时候,目标对象就会监听数据源对象的某一固定事件。当数据源发生变化时,数据源会派发改变事件通知目标对象更新数据。实际开发中我们不需要去关注具体的实现过程,这个过程 Flash/Flex 会自动去完成。在 Flex 中,Flex 数据绑定主要有四种方式,分别为:“绑定表达式、Bindable绑定符号、标签和 BindingUtils 动态绑定,下面一一对这四种 Flex 数据绑定方式进行详细介绍。一、“绑定表达式Flex 开发中,“绑定表达式的应用是最为常见的,简单、方便。好比 ASP.NET 中的“一样的功效。这里我就简单介绍下,在 Flex 下怎么使用“绑定表达式来绑定数据。如有这样一
7、个简单的需求,我们定义一个变量,通过“绑定表达式将变量的值绑定到文本框或是按扭等类似的 UI 组件上,变量定义如下:1 2 6 如上定义了一个字符串的变量 text,我们通过“绑定表达式将其绑定在 UI 组件上呢?如下:1 2 3 简洁、简单、方便且适用。OK,已经学到手了,那下面继续看看另一种绑定使用方式 -绑定方法返回值。例如需要将一个方法的返回值通过“ 绑定表达式进行 Flex 数据绑定,让其在 UI 组件上呈现该怎么做呢?如下方法定义:1privatefunctionBindText():String 2 3return“通过“表达式绑定方法!“; 4 其实和上面一样,直接将“ 里的变
8、量改为方法便 OK,如下代码段:如上便完成了对方法的绑定,既将 BindText()方法的值绑定在了 Label 组件上。二、Bindable绑定符号Bindable绑定符号在上面就已经出现过了,他的使用和作用也很容易掌握。如上示例,我们的目的是将定义的变量值绑定在 UI 组件上,如果要实现这个功能,直接将定义的变量通过“绑定表达式进行 Flex 数据绑定是不能完成功能的,我们必须为所定义的变量标记Bindable。在 Flex 中,只有标记有Bindable 的数据源才能进行 Flex 数据绑定(函数除外,上面示例中也证实了这一点) ,当然也可以是其他的数据源(xml, 数据库,文件等不同地
9、方不同类型的数据源) 。上面这样使用确实很简单,但还是需要更加深入的了解Bindable。当指定了Bindable 的数据源发生改变的时候,仍然是通过所监听的事件方法来处理的“通知” ,默认为“propertyChange“事件。如之前定义的变量 text,那么完整的定义应该如下所示:1Bindable(event=“propertyChange“)2internalvartext:String=“嗨,这是通过“ 表达式绑定的!“;“propertyChange”事件为默认事件,通常我们只需要使用简写形式Bindable就 OK 了。除此之外还需要注意两点(这里就不做介绍,在后续文章里我会详细
10、介绍):1、Bindable标签用于函数时,只能在 setter 和 getter 方式定义的函数前使用,这种绑定称之为函数级绑定。2、Bindable标签用于公有类时,这个类的所有公共变量,setter 和 getter 方式定义的函数都可以用于绑定。这种绑定称为对象级绑定。三、标签标签也是使用非常频繁的 Flex 数据绑定方式。到底怎么个用法呢?下面以两个小示例使用不同的数据源来进行 Flex 数据绑定演示。首先用标签定义一个数据源( 标签就相当于的定义一个临时数据,这里不做详细介绍,不清楚它的作用的朋友请查阅相关资料学习) 。标签定义数据源如下:1 2 3 4ActionScript3.
11、0 5张三 6 7 8FlashCS3 9李四 10 11 12 如上定义的数据源,通过 标签来进行 Flex 数据绑定是很简单的,如下代码段:1 2 3 4 5 标签可以用来定义 XML 式的数据源,另外还可以通过编程的方式定义数据源或从数据库、文件或各种数据服务接口来获取数据源,下面是使用 xml 的数据源定义:1privatevarxml:XML= 2 3ActionScript3.0 4张三 5 6 7FlashCS3 8李四 9 10 绑定 xml 对象的数据和通过标签定义的数据源没什么区别,详细如下代码块:1 2 3 4 四、BindingUtils 与动态绑定在 Flex 数据绑
12、定中,动态绑定主要是通过 BindingUtils 类提供的两个静态方法来实现。该类位于包 mx.binding.utils 下,它提供了 bindProperty()和 bindSetter()两个静态方法来实现数据的动态绑定。bindProperty()方法根据名称就可以看出大概意思,绑定属性。那实际开发中我们应该怎么应用他呢?其实很简单,一句话概括就是:将 xx 的 YY 属性绑定到 AA 的 BB 属性。更清楚的理解这句话的意思见下面代码片段:1 2 3 4 14 15 16 17 这段代码很简单,在界面上分别放置了输入组件和一个按扭组件,然后定义了一个字符串(String)类型的变量
13、 myName,最后通过按扭的单击事件将按扭的“label“属性绑定到输入组件的“text“属性上。其实 onClick()方法里的代码和下面这一句代码是完全等价的:1this.nameText.text=this.btn.label; bindSetter()方法的使用也很简单,该 Flex 数据绑定方法绑定数据需要与 setter 类似的方法结合,将外部传递进去的参数进行方法委托实现数据的动态绑定,拿上面将按扭显示值绑定到文本输入组件的值的示例来说,只需要定义一个 setter 的方法,该 bindProperty()方法为 bindSetter()方法既可,详细见下面代码片段:1 2 3
14、 4 20 21 22 23 /*/本文向大家简单介绍一下关于 Flex 的几种绑定,在 Flex 应用中程序中,Flex 数据绑定的实际是借助事件机制来完成的,当目标使用 Flex 数据绑定的时候,目标对象就会监听数据源对象的某一固定事件。关于 Flex 的几种绑定在 Flex 应用中程序中,Flex 数据绑定的实际是借助事件机制来完成的,当目标使用 Flex数据绑定的时候,目标对象就会监听数据源对象的某一固定事件。当数据源发生变化时,数据源会派发改变事件通知目标对象更新数据。实际开发中我们不需要去关注具体的实现过程,这个过程 Flash/Flex 会自动去完成。在 Flex 中,Flex
15、数据绑定主要有四种方式,分别为:“绑定表达式、Bindable绑定符号、标签和 BindingUtils 动态绑定,下面一一对这四种 Flex 数据绑定方式进行详细介绍。Flex 数据绑定第一种,使用绑定Flex 数据绑定第二种,绑定Flex 数据绑定第三种,使用 BindingUtils 工具类BindingUtils.bindProperty ( target,“targetProperty“,source,“sourceProperty“ ); target:Object-目标targetProperty: 目标属性,String 类型source:Object-绑定源sourcePro
16、perty:源属性,String 类型BindingUtils.bindProperty (labelTarget,“text“,inputSource,“text“); flex 中 embed 的用法Flex 软件中经常需要使用一些外部的资源,如图片、声音、SWF 或字体,虽然你也可以在软件运行的时候引入和载入,但是也可能经常需要直接将这些资源编译(Compile)到软件中,也就是直接嵌入资源(Embedding Assets) 。 Flex 中可以直接嵌入图片 image,影片movie, MP3,和 TrueType 文字。嵌入资源的利处:1、比起在运行时访问资源,对嵌入资源的访问速度
17、更加快速;2、可以用简单的变量访问方式,在多个地方引用所嵌入的资源。这是变量就代表资源,提高写代码的效率;嵌入资源的弊处:1、增大了 SWF 文件的大小,因为是将资源直接包含;2、由于 SWF 文件增大,将使得初始化的速度变慢;3、当资源改变后,需要重新编译 SWF 文件;嵌入资源的语法:根据嵌入位置的不同,语法也各不同:1、 Embed (parameter1, paramater2, .) 元数据标签这主要在 AS 文件中,或 MXML 文件中的 标签中使用。2、 Embed (parameter1, paramater2, .) 指令这主要在 MXML 标签中使用。3、 Embed (p
18、arameter1, paramater2, .) 指令这主要在 样式表中使用。根据情况的不同嵌入资源 Embed 的返回类型可以是 Class 或 String。Embed 的用法Flex 软件中经常需要使用一些外部的资源,如图片、声音、SWF 或字体,虽然你也可以在软件运行的时候引入和载入,但是也可能经常需要直接将这些资源编译(Compile)到软件中,也就是直接嵌入资源(Embedding Assets) 。 Flex 中可以直接嵌入图片 image,影片 movie,MP3 ,和TrueType 文字。嵌入资源的利处:1、比起在运行时访问资源,对嵌入资源的访问速度更加快速;2、可以用简
19、单的变量访问方式,在多个地方引用所嵌入的资源。这是变量就代表资源,提高写代码的效率;嵌入资源的弊处:1、增大了 SWF 文件的大小,因为是将资源直接包含;2、由于 SWF 文件增大,将使得初始化的速度变慢;3、当资源改变后,需要重新编译 SWF 文件;嵌入资源的语法:根据嵌入位置的不同,语法也各不同:1、 Embed (parameter1, paramater2, .) 元数据标签这主要在 AS 文件中,或 MXML 文件中的 标签中使用。2、 Embed (parameter1, paramater2, .) 指令这主要在 MXML 标签中使用。3、 Embed (parameter1, paramater2, .) 指令这主要在 样式表中使用。根据情况的不同嵌入资源 Embed 的返回类型可以是 Class 或 String。