使用<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对象。
使用ActionScript类
虽然使用<mx:Model><mx:XML>简单省力,但在很多情况下并不是理想的方案。它们适用于简单,静态的数据。但对于复杂的,动态的,或者带有规则的数据,使用定制的ActionScript类是更好的方法。因为:
1)使用<mx:Model>和<mx:XML>你不能强制数据的类型,但AS能。
2)不能进行数据的测试/一致性检查等,但AS类的setter方法可以测试有效的值,对无效的值可以忽略,转换或是出错。
3)不能带上商务逻辑
4)不能使用优雅的设计模式。AS类可让整个应用都可存取的实例???
写一个AS类作数据模型是简单的,只需定义一个类,为所有的属性定义公共的存取方法。所有setter和getter方法都是强类型的,有些Setter方法进行数据测试检查。
在包中定义类之后:
package com.oreilly.programmingflex.data {
public class User{
}
}
就可以在MXML中创建它的实例了,但得首先将包声明为命名空间:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml
" xmlns:data="com.oreilly.programmingflex.data.*" layout="absolute">
<data:User id="user" email="
example@example.com
" lastLogin="{new Date()}"
nameFirst="Abigail" nameLast="Smith" userType="1" />
</mx:Application>
若在AS中使用,你需要导入这个类,然后使用它:
import com.oreilly.programmingflex.data.User;
private var user:User;
private function initializeHandler(event:Event):void {
user = new User();
user.email = "
example@example.com
";
// etc.
}
分享到:
相关推荐
通过Servlet,Java可以提供动态生成的数据给Flex客户端,而Flex则能通过`<mx:Model>`组件轻松地解析和显示这些数据。这样的架构使得前端与后端可以灵活解耦,便于开发和维护。对于初学者来说,理解这个通信机制是...
<mx:TextArea text="{dataModel.textProperty}" /> ``` 这里`{dataModel.textProperty}`表示从名为`dataModel`的数据模型中获取`textProperty`属性的值,并将其绑定到文本框的`text`属性上。 #### 四、Flex应用...
- **示例**:通过MX:Model和MX:Binding实现模型与文本输入框之间的数据绑定。 - 示例代码: ```xml <mx:Model id="books"> <author>leafage </mx:Model> <mx:Binding source="books.author" destination=...
<mx:Model id="books"> <name>FLEX教程 张三 <name>JAVA教程 <author>WANGWU </mx:Model> <mx:Binding source="books.book[1].name" destination="txt_name.text"/> <mx:Binding source="books.book...
import model.Person; import mx.collections.ArrayCollection; [Bindable] private var personList:ArrayCollection = new ArrayCollection(); private function displayData(event:Event):void { var peopleXML...
4. 使用 `<mx:Model>` 标签可以创建数据模型,其中的数据可以被绑定到界面组件。例如,定义一个书籍模型: ```xml <mx:Model id="books"> <name>FLEX 教程 张三 <name>JAVA 高级编程 李四 </mx:...
Flex的一个重要特点是它的分离协作模式和Flex公用组件模型(Flex Common Component Model, CCM)。这些特性不仅提高了开发效率,还加强了开发者与界面设计者之间的协作。通过这种方式,团队可以更容易地构建高质量、...
【Flex数据与通讯】知识点详解 Flex数据与通讯主要涉及如何在Flex应用程序中与其他程序进行数据交换和传输,包括内部数据传输以及与外部服务(如HTTPService和WebService)的交互。下面将详细介绍Flex中数据传输的...
MVC模式是Flex中推荐的架构模式,它将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个主要部分。模型负责管理数据和业务逻辑,视图负责展示数据,而控制器则负责处理用户的输入并协调模型和视图...
#### Model(模型) 模型部分主要负责处理应用程序的数据逻辑,存储和检索数据。在Flex开发中,模型通常包含业务逻辑和数据访问对象,是数据和业务规则的核心。开发者可以使用Flex中的数据绑定功能来简化模型层与视...
<mx:Model id="artwork" source="model/artwork.xml"/> <mx:DataGrid rowCount="4" dataProvider="{artwork.piece}"/> </mx:Application> ``` 在这个例子中,`DataGrid`控件绑定了`artwork.piece`作为数据提供者...
import model.KeihoModelLocator; [Bindable] private var modelLocator:KeihoModelLocator = KeihoModelLocator.getInstance(); internal function addKeiyakusaki():void { var eventBroadCast:...
- 数据绑定机制使得`moviemodel.movieList.subPointedDataList`可以直接作为图表`<mx:ColumnChart>`的数据提供者,当Java端数据发生变化时,图表会自动更新。 4. **BlazeDS配置**: - 在Java应用服务器(如Tomcat...
在这个文件中,你可能会看到诸如`<s:Label>`或`<mx:Timer>`等标签,它们分别表示Spark标签和MX标签,是Flex的不同UI组件库。 1. **时间组件的基本构成**: - 时间显示:通常由多个`Label`组件组成,用于展示小时、...
Flex采用MVC(Model-View-Controller)模型来提高代码的复用性和可维护性。 - **Model(模型)**:负责封装数据和与数据相关的逻辑。 - **View(视图)**:定义应用程序的用户界面。 - **Controller(控制器)**:...
根据给定的信息,本文将详细解释“Flex-Jsp-Mysql简单结合例子”这一主题,包括Flex、JSP以及MySQL在项目中的应用与交互,并重点分析MVC架构在Flex中的实现方式。 ### Flex简介 Flex是一种用于构建跨浏览器、跨...
8. **Flex 架构**:Flex 应用基于 MVC(Model-View-Controller)架构,源码中可能会有对模型、视图和控制器的划分,帮助初学者理解如何组织代码。 9. **调试和测试**:源码可能包含调试信息和测试用例,这对于初学...
xmlns:mx="library://ns.adobe.com/flex/mx" backgroundColor="#FFFFFF"> <!-- 白色背景 --> ... </s:Application> ``` #### 3. 启用IME支持 在Flex中,可以通过启用IME (Input Method Editor) 支持来解决输入...
本示例中,`mx:Model`标签定义了一个包含不同语言数据的模型。视图部分则通过绑定的方式将模型中的数据展示出来。 2. **数据绑定**: 数据绑定是一种机制,用于自动同步模型和视图之间的数据。当模型中的数据发生...