使用<mx:Model id="example"/>,可在Model里放置数据的结构:
<mx:Model id="userData">
<user>
<email></email>
<phone></phone>
<address>
<city></city>
<state></state>
</address>
</user>
</mx:Model>
<!--或者直接放置数据:-->
<mx:Model id="userData">
<user>
<email>example@example.com</email>
<phone>123 555-1212</phone>
<address>
<city>Exampleville</city>
<state>CA</state>
</address>
</user>
</mx:Model>
<!--但一般把较多的数据这在一个文件中:-->
<mx:Model id="statesModel" source="states.xml" />
这个文件的数据是在编译时被载入,而不是运行时。它与在<Model>标签里直接嵌入数据是一样的,只不过这样更简洁。一旦编译成.swf文件之后,你就不用带上这个文件,因为数据已被编译进.swf文件。
<mx:Model>并不是有名叫Model一个ActionScript类与它对应,实际上它是创建了一个ObjectProxy类的实
例,ObjectProxy对象是一个Object实例的封装,完全可以象Object实例一样去对待它,使用ObjectProxy主要的目的是可以数
据绑定。
因为相当于在ActionScript中创建了一个对象,当然可以使用点语法来直接访问它的子节点对象。对象本身的ID与它的根节点是同义的。即访问其子节点对象时不用再加根对象的名字了。
当一个data model结构是由两个或更多的同名兄弟节点组成是,它们将被转换成一个数组。如statesModel.state将是一个数组,存储了statesModel对象的所有名为state的子对象。
一般<mx:Model>用于传统数据,如对象,字符串和数组。而想用XML格式数据时,使用<mx:XML>标签。
<mx:XML>有一个xmlns属性来指定这个XML的命名空间。
一个<mx:XML>标签,在ActionScript中默认是创建一个XML对象,此时它的format属性为缺省的e4x,如果设置为xml,将会创建一个flash.xml.XMLNode对象。
<mx:XML id="dd0" format="e4x" xmlns="dfdfdf">
<name>
<a>ddd</a>
<b>bbb</b>
</name>
</mx:XML>
使用ActionScript类
虽然使用<mx:Model><mx:XML>简单省力,但在很多情况下并不是理想的方案。它们适用于简单,静态的数据。但对于复杂的,动态的,或者带有规则的数据,使用定制的ActionScript类是更好的方法。因为:
1)使用<mx:Model>和<mx:XML>你不能强制数据的类型,但AS能。
2)不能进行数据的测试/一致性检查等,但AS类的setter方法可以测试有效的值,对无效的值可以忽略,转换或是出错。
3)不能带上商务逻辑
4)不能使用优雅的设计模式。AS类可让整个应用都可存取的实例???
写一个AS类作数据模型是简单的,只需定义一个类,为所有的属性定义公共的存取方法。所有setter和getter方法都是强类型的,有些Setter方法进行数据测试检查。
分享到:
相关推荐
在MXML代码中,我们看到一个`<mx:Model>`标签,它的`source`属性指向了一个Servlet的URL("http://localhost:8080/flex/first")。当Flex应用加载时,`<mx:Model>`会向这个Servlet发起HTTP请求,Servlet负责返回XML...
这里`{dataModel.textProperty}`表示从名为`dataModel`的数据模型中获取`textProperty`属性的值,并将其绑定到文本框的`text`属性上。 #### 四、Flex应用程序的编译和运行 创建好Flex应用程序后,需要使用Flex...
在Flex中,数据绑定通常通过在对象的属性标签中使用花括号`{}`来实现。例如,以下代码将`HSlider`组件的值`fsize.value`绑定到了`Label`组件的`fontSize`属性: ```xml <mx:Label text="周末加班的人很累的" ...
- **示例**:通过MX:Model和MX:Binding实现模型与文本输入框之间的数据绑定。 - 示例代码: ```xml <mx:Model id="books"> <author>leafage </mx:Model> <mx:Binding source="books.author" destination=...
4. 使用 `<mx:Model>` 标签可以创建数据模型,其中的数据可以被绑定到界面组件。例如,定义一个书籍模型: ```xml <mx:Model id="books"> <name>FLEX 教程 张三 <name>JAVA 高级编程 李四 </mx:...
- **理解Rich UI的概念**:在Grails和Flex的集成过程中,Rich UI意味着能够在不重新加载整个页面的情况下更新特定元素。这通常涉及到将UI渲染的工作卸载到客户端机器上。 - **利用Flex的Rich UI能力**:Flex通过其...
### flex解决textarea,input不能输入中文的方法 在使用Flex进行Web应用开发时...以上三个方面的综合运用,能够极大地提升Flex应用的兼容性和可用性,特别是在多语言环境中,确保了所有用户都能够顺畅地使用输入功能。
8. **Flex 架构**:Flex 应用基于 MVC(Model-View-Controller)架构,源码中可能会有对模型、视图和控制器的划分,帮助初学者理解如何组织代码。 9. **调试和测试**:源码可能包含调试信息和测试用例,这对于初学...
Flex数据与通讯主要涉及如何在Flex应用程序中与其他程序进行数据交换和传输,包括内部数据传输以及与外部服务(如HTTPService和WebService)的交互。下面将详细介绍Flex中数据传输的多种方式及其应用。 ### 21.1 ...
- **布局与组件使用**:在MXML文件中,通过使用<`mx:Panel`>、<`mx:Label`>等标签,可以定义应用程序的布局和界面元素。例如,<`mx:Panel`>用于创建一个带有标题的面板,<`mx:Label`>用于显示静态文本。 - **数据...
在这个文件中,你可能会看到诸如`<s:Label>`或`<mx:Timer>`等标签,它们分别表示Spark标签和MX标签,是Flex的不同UI组件库。 1. **时间组件的基本构成**: - 时间显示:通常由多个`Label`组件组成,用于展示小时、...
根据给定的信息,本文将详细解释如何在Flex中实现DataGrid中的checkbox全选或取消功能。这涉及到Flex的checkbox管理、事件监听与处理、以及如何使用Cairngorm框架进行模型层更新等内容。 ### 一、理解Flex DataGrid...
<mx:Model id="artwork" source="model/artwork.xml"/> <mx:DataGrid rowCount="4" dataProvider="{artwork.piece}"/> </mx:Application> ``` 在这个例子中,`DataGrid`控件绑定了`artwork.piece`作为数据提供者...
`<s:Application>`、`<s:Panel>`和`<mx:ColumnChart>`等标签分别定义了应用的基本结构、面板和柱状图组件。 - `[Bindable]`关键字表明`moviemodel`变量是可绑定的,当其值改变时,界面会自动更新。`...
5. **Flex应用结构**:一个Flex应用通常包含多个视图(View)、控制器(Controller)和模型(Model)。视图负责显示界面,控制器处理用户交互,模型则管理数据和业务逻辑。 6. **数据绑定**:Flex支持双向数据绑定...
5. **Flex Component Model**:Flex组件模型基于MX组件库,包含了一系列预定义的UI控件,如按钮、文本框、列表等。开发者可以通过继承和自定义这些组件来扩展功能。 6. **数据绑定**:Flex支持双向数据绑定,使得UI...
每一个MXML文件中的标签都带有`mx`前缀,代表Flex的设计命名空间。 下面是一个简单的MXML程序示例: ```xml <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Panel> <mx:...
MVC模式是Flex中推荐的架构模式,它将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个主要部分。模型负责管理数据和业务逻辑,视图负责展示数据,而控制器则负责处理用户的输入并协调模型和视图...