`

flex mx:model

    博客分类:
  • flex
阅读更多


使用<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. 
      }

分享到:
评论

相关推荐

    FLex与Java通信实例

    通过Servlet,Java可以提供动态生成的数据给Flex客户端,而Flex则能通过`&lt;mx:Model&gt;`组件轻松地解析和显示这些数据。这样的架构使得前端与后端可以灵活解耦,便于开发和维护。对于初学者来说,理解这个通信机制是...

    Flex教程大全 flex快速入门

    &lt;mx:TextArea text="{dataModel.textProperty}" /&gt; ``` 这里`{dataModel.textProperty}`表示从名为`dataModel`的数据模型中获取`textProperty`属性的值,并将其绑定到文本框的`text`属性上。 #### 四、Flex应用...

    flex与java,研究学习

    - **示例**:通过MX:Model和MX:Binding实现模型与文本输入框之间的数据绑定。 - 示例代码: ```xml &lt;mx:Model id="books"&gt; &lt;author&gt;leafage &lt;/mx:Model&gt; &lt;mx:Binding source="books.author" destination=...

    flex学习记录非常详细

    &lt;mx:Model id="books"&gt; &lt;name&gt;FLEX教程 张三 &lt;name&gt;JAVA教程 &lt;author&gt;WANGWU &lt;/mx:Model&gt; &lt;mx:Binding source="books.book[1].name" destination="txt_name.text"/&gt; &lt;mx:Binding source="books.book...

    grails和flex的集成手册

    import model.Person; import mx.collections.ArrayCollection; [Bindable] private var personList:ArrayCollection = new ArrayCollection(); private function displayData(event:Event):void { var peopleXML...

    Flex 3 基础教程4)

    4. 使用 `&lt;mx:Model&gt;` 标签可以创建数据模型,其中的数据可以被绑定到界面组件。例如,定义一个书籍模型: ```xml &lt;mx:Model id="books"&gt; &lt;name&gt;FLEX 教程 张三 &lt;name&gt;JAVA 高级编程 李四 &lt;/mx:...

    flex_教程.doc

    Flex的一个重要特点是它的分离协作模式和Flex公用组件模型(Flex Common Component Model, CCM)。这些特性不仅提高了开发效率,还加强了开发者与界面设计者之间的协作。通过这种方式,团队可以更容易地构建高质量、...

    FLEX数据与通讯

    【Flex数据与通讯】知识点详解 Flex数据与通讯主要涉及如何在Flex应用程序中与其他程序进行数据交换和传输,包括内部数据传输以及与外部服务(如HTTPService和WebService)的交互。下面将详细介绍Flex中数据传输的...

    Flex入门教程

    MVC模式是Flex中推荐的架构模式,它将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个主要部分。模型负责管理数据和业务逻辑,视图负责展示数据,而控制器则负责处理用户的输入并协调模型和视图...

    flex开发的一些好指导

    #### Model(模型) 模型部分主要负责处理应用程序的数据逻辑,存储和检索数据。在Flex开发中,模型通常包含业务逻辑和数据访问对象,是数据和业务规则的核心。开发者可以使用Flex中的数据绑定功能来简化模型层与视...

    flex quick starts

    &lt;mx:Model id="artwork" source="model/artwork.xml"/&gt; &lt;mx:DataGrid rowCount="4" dataProvider="{artwork.piece}"/&gt; &lt;/mx:Application&gt; ``` 在这个例子中,`DataGrid`控件绑定了`artwork.piece`作为数据提供者...

    Flex_全选或取消DataGrid中的checkbox

    import model.KeihoModelLocator; [Bindable] private var modelLocator:KeihoModelLocator = KeihoModelLocator.getInstance(); internal function addKeiyakusaki():void { var eventBroadCast:...

    Flex+java+bluzeds反向传送,正向数据传送与配置与实例

    - 数据绑定机制使得`moviemodel.movieList.subPointedDataList`可以直接作为图表`&lt;mx:ColumnChart&gt;`的数据提供者,当Java端数据发生变化时,图表会自动更新。 4. **BlazeDS配置**: - 在Java应用服务器(如Tomcat...

    Flex 实现分秒的时间组件

    在这个文件中,你可能会看到诸如`&lt;s:Label&gt;`或`&lt;mx:Timer&gt;`等标签,它们分别表示Spark标签和MX标签,是Flex的不同UI组件库。 1. **时间组件的基本构成**: - 时间显示:通常由多个`Label`组件组成,用于展示小时、...

    Flx的创建发布及运行过程

    Flex采用MVC(Model-View-Controller)模型来提高代码的复用性和可维护性。 - **Model(模型)**:负责封装数据和与数据相关的逻辑。 - **View(视图)**:定义应用程序的用户界面。 - **Controller(控制器)**:...

    Flex-Jsp-Mysql简单结合例子

    根据给定的信息,本文将详细解释“Flex-Jsp-Mysql简单结合例子”这一主题,包括Flex、JSP以及MySQL在项目中的应用与交互,并重点分析MVC架构在Flex中的实现方式。 ### Flex简介 Flex是一种用于构建跨浏览器、跨...

    Flex3.0入门指南源码

    8. **Flex 架构**:Flex 应用基于 MVC(Model-View-Controller)架构,源码中可能会有对模型、视图和控制器的划分,帮助初学者理解如何组织代码。 9. **调试和测试**:源码可能包含调试信息和测试用例,这对于初学...

    flex解决textarea,input不能输入中文的方法

    xmlns:mx="library://ns.adobe.com/flex/mx" backgroundColor="#FFFFFF"&gt; &lt;!-- 白色背景 --&gt; ... &lt;/s:Application&gt; ``` #### 3. 启用IME支持 在Flex中,可以通过启用IME (Input Method Editor) 支持来解决输入...

    Flex高级数据绑定实例(界面语言切换)

    本示例中,`mx:Model`标签定义了一个包含不同语言数据的模型。视图部分则通过绑定的方式将模型中的数据展示出来。 2. **数据绑定**: 数据绑定是一种机制,用于自动同步模型和视图之间的数据。当模型中的数据发生...

Global site tag (gtag.js) - Google Analytics