- 浏览: 786714 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (573)
- Java基础 (76)
- C++基础 (5)
- hibernate (5)
- struts (4)
- spring (1)
- webservice (7)
- AjaX基础 (0)
- JS脚本 (53)
- 正则表达式 (5)
- html脚本 (30)
- 数据库基础 (54)
- 工作相关 (49)
- 其他 (30)
- Linux (9)
- web服务器 (17)
- JSP (13)
- eclipse (6)
- 面试题相关 (20)
- XML (3)
- Apache common (2)
- 生活 (35)
- VMware (1)
- log4j (9)
- BeanUtils (2)
- 设计模式 (3)
- UML (1)
- UNIX (1)
- ibats (5)
- GT-Grid (17)
- ABAP学习 (17)
- ABAP (35)
- ABAP--ALV (11)
- ABAP--WEBDIMPRO (0)
- abap-sample (1)
- BEMS (2)
- flex (33)
- GIS技术 (3)
最新评论
对一个类声明绑定,相当于给这个类里的所有属性都声明了绑定。等同于你把这个类里的所有属性都声明绑定。
那么这个类的属性如果发生了变化,则会触发绑定。
比如
[Bindable]
public ClassA{
//这里用static是为了调用方便,非static是一样的
public static var data:Object
}
如果在外面引用,比如<mx:Label text="{ClassA.data}" />
当data属性改变后,这个label是可以变化的。
但是有个细节要注意到,绑定之所以会被触发,是因为被绑定的对象的引用变化了,如果引用没有改变则不会触发绑定。详细举例来说明
刚才说到。ClassA.data其实也被声明了绑定,如果我们这么写
ClassA.data="Test Binding"是会触发绑定的,
因为,data属性从null变为了一个string
如果我们在定义data时,他不是一个基础类型(as里,基础数据类型是String,int,uint,Number),是一个封装类型时(XML,Object,Array。。。),我们就要考虑到在封装类型内部是否实现了抛出绑定。什么意思呢
如果这个data属性被定义为某个 不为null 的封装类,比如是一个Array
public static var data:object = [ {name:'user1'}, {name:'user2'} ];
如果我们在组件中这样引用
<datagrid dataprovider="{ClassA.data}"> ...<column datafield="name" />
当我们在代码中这样改变data时
ClassA.data[0].name="change!"
结果是:没有发生改变?为什么呢?
刚刚说到了,绑定是检测声明了绑定对象(或属性)的引用是否改变,实际上,我们声明只到达data这个属性(对象)为止,至于里面的每个元素的每个属性我们并没有绑定,如果这些发生了改变,绑定是不会触发的。
这点,即使不是对类进行绑定,直接绑定其他变量时也是相同遵守的。
因此,很多人使用bindable去绑定结果集的时候,对结果集的操作不会影响到引用的控件,
有种避免的办法就是对所有自定义类型对象都声明绑定,比如这个data属性,可以定义为User类,并对这个User类声明绑定。
这样只要单个对象有绑定,那么就不会存在这个问题,但是这样也带来不少麻烦,定义如此多的VO,也会很繁琐。
特别是如果不是使用的ro,而是用的httpservice之类的请求,返回结果都是xml、xmllist等对象的情况下,这个办法就不是很好用了。因为必须转换到自定义的集合中去。
因此绑定也并非是万能的,某些时候还是需要手动的去处理一下。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~以上来自RIACHINA
[Bindable]专门用来定义绑定中的数据源对象,
[Bindable]的用法:
1.变量前定义:使用[Bindable]后,下一行表达式定义的变量就可以被用在绑定中。
方法一:[Bindable]
方法二:[Bindable(event=”eventname”)] event事件名指当数据源发生变化时,
数据源所在对象派发的事件类型,它是可选的。如果不写,默认事件名是“propertyChange”
2.函数前定义:此函数必须通过setter和getter方式定义, [Bindable]要用在setter函数前面。
[Bindable]
public function set Num(n:Number):void{
num=n;
}
public function get Num():void{
return num;
}
虽然是方法,但使用时,也是用 . 语法,即 ~ . Num。
3. 公用类前定义:当使用了绑定标签后,这个类的所有公有变量,包括setter和getter都可以用于绑定。
package tree{
[Bindable]
public class myTest{
private var num:Number=0;
public var className:String=”aaa”; //可用数据绑定
public function set Num(n:Number):void{ //可用数据绑定
num=n;
}
public function get Num():void{
return num;
}
}
}
那么这个类的属性如果发生了变化,则会触发绑定。
比如
[Bindable]
public ClassA{
//这里用static是为了调用方便,非static是一样的
public static var data:Object
}
如果在外面引用,比如<mx:Label text="{ClassA.data}" />
当data属性改变后,这个label是可以变化的。
但是有个细节要注意到,绑定之所以会被触发,是因为被绑定的对象的引用变化了,如果引用没有改变则不会触发绑定。详细举例来说明
刚才说到。ClassA.data其实也被声明了绑定,如果我们这么写
ClassA.data="Test Binding"是会触发绑定的,
因为,data属性从null变为了一个string
如果我们在定义data时,他不是一个基础类型(as里,基础数据类型是String,int,uint,Number),是一个封装类型时(XML,Object,Array。。。),我们就要考虑到在封装类型内部是否实现了抛出绑定。什么意思呢
如果这个data属性被定义为某个 不为null 的封装类,比如是一个Array
public static var data:object = [ {name:'user1'}, {name:'user2'} ];
如果我们在组件中这样引用
<datagrid dataprovider="{ClassA.data}"> ...<column datafield="name" />
当我们在代码中这样改变data时
ClassA.data[0].name="change!"
结果是:没有发生改变?为什么呢?
刚刚说到了,绑定是检测声明了绑定对象(或属性)的引用是否改变,实际上,我们声明只到达data这个属性(对象)为止,至于里面的每个元素的每个属性我们并没有绑定,如果这些发生了改变,绑定是不会触发的。
这点,即使不是对类进行绑定,直接绑定其他变量时也是相同遵守的。
因此,很多人使用bindable去绑定结果集的时候,对结果集的操作不会影响到引用的控件,
有种避免的办法就是对所有自定义类型对象都声明绑定,比如这个data属性,可以定义为User类,并对这个User类声明绑定。
这样只要单个对象有绑定,那么就不会存在这个问题,但是这样也带来不少麻烦,定义如此多的VO,也会很繁琐。
特别是如果不是使用的ro,而是用的httpservice之类的请求,返回结果都是xml、xmllist等对象的情况下,这个办法就不是很好用了。因为必须转换到自定义的集合中去。
因此绑定也并非是万能的,某些时候还是需要手动的去处理一下。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~以上来自RIACHINA
[Bindable]专门用来定义绑定中的数据源对象,
[Bindable]的用法:
1.变量前定义:使用[Bindable]后,下一行表达式定义的变量就可以被用在绑定中。
方法一:[Bindable]
方法二:[Bindable(event=”eventname”)] event事件名指当数据源发生变化时,
数据源所在对象派发的事件类型,它是可选的。如果不写,默认事件名是“propertyChange”
2.函数前定义:此函数必须通过setter和getter方式定义, [Bindable]要用在setter函数前面。
[Bindable]
public function set Num(n:Number):void{
num=n;
}
public function get Num():void{
return num;
}
虽然是方法,但使用时,也是用 . 语法,即 ~ . Num。
3. 公用类前定义:当使用了绑定标签后,这个类的所有公有变量,包括setter和getter都可以用于绑定。
package tree{
[Bindable]
public class myTest{
private var num:Number=0;
public var className:String=”aaa”; //可用数据绑定
public function set Num(n:Number):void{ //可用数据绑定
num=n;
}
public function get Num():void{
return num;
}
}
}
发表评论
-
Flex 非常实用的资料
2012-05-31 15:38 1230【改变输出swf的尺度,背景颜色或帧频】 在"Na ... -
Flex正则表达式规则
2012-05-31 15:35 17161.Flex正则表达式规则 1.1普通字符 字母、数字、汉 ... -
Flex中[Bindable]的使用心得
2012-05-30 16:55 924在Flex编程中,Bindble使用到最多的元数据。该标签可以 ... -
FLEX元标签_Bindable
2012-05-30 16:46 11121 概述 [Bindable ... -
Flex [Bindable] 以及使用方法
2012-05-30 16:37 1135绑定: 举个例子: 给下面的public变量加上[Bind ... -
关于flex开发自定义组件需要注意的问题
2012-05-23 14:24 1159一.首先回答,为什么要 ... -
Flex中自定义组件
2012-05-23 14:17 1120如要重写组件,就不得不了解Flex中组件初始化过程。初始化过程 ... -
flex,datagrid多列排序
2012-03-21 15:01 1086<?xml version="1.0" ... -
flex,datagrid 按照列来排序
2012-03-21 13:56 2142排序部分 import mx.controls.DateFie ... -
flex 动态给控件赋值,通过反射遍历MXML中的组件
2012-03-21 13:52 1379flex 动态给控件赋值,通过反射遍历MXML中的组件。当有1 ... -
flex双击不生效问题
2012-03-21 13:50 977今天用到flex的doubleclick的事件,但是不生效,原 ... -
FLEX datagrid 点击列头排序后,行编辑问题
2012-03-21 13:45 1008点击列头排序后。行编辑事件结束后,adobe默认会自己重新将d ... -
flex内存管理机制
2012-03-20 13:44 942一.简述Flex内存释放优 ... -
Flex 内存处理的方法
2012-03-20 11:25 8831.当任何对象unload后,fl ... -
Flex3 Profile的使用
2012-03-13 15:38 958flex的profile就是一个性能监测器,也是adobe向传 ... -
FLEX内存释放优化原则
2012-03-13 15:36 840FLEX内存释放优化原则: 1. 被删除对象在外部的所有引 ... -
flashplayer的缓存目录
2012-03-13 15:34 3067flashplayer的缓存目录是: XP系统下是C:/Do ... -
swf 更新后,客户端不需要清空缓存即可查看最新版本
2012-03-13 14:20 2416我们在用Flex开发应用的时候,每次修改了swf,上传到服务器 ... -
用RSL来为你的flex程序减肥
2012-03-13 14:19 1178用RSL来为你的flex程序减肥 问题:一个只有几个控件的 ... -
Flex控制session方法
2011-12-07 08:52 1084采用filter 监控 MessageBrokerServle ...
相关推荐
`[Bindable]`是Flex中最常用的元数据之一,它主要用于实现数据绑定功能。数据绑定是Flex应用中的核心概念,它允许视图组件与应用程序模型之间的数据自动同步。 元数据不是语言本身的一部分,而是为编译器设计的,...
Flex 4的生命周期改进也体现在事件处理和元数据的使用上,例如` IOErrorEvent`和`StatusEvent`等事件,以及`[Bindable]`、`[SkinPart]`等元数据,这些都增强了组件与外部数据的交互和皮肤的自定义。 尽管Adobe提供...
- **动态的数据展现源于灵活的数据绑定**:介绍了数据绑定的基本概念,包括绑定表达式、[Bindable]符号、`<mx:Binding>`标签、BindingUtils和自定义数据绑定。 - **使用样式(style)和皮肤(Skin)两大画笔为应用程序...
此外,还增加了 Bindable、Observer 和 Bindable Event 等元数据,让数据绑定更加灵活和强大。 5. **MXML改进**:MXML作为Flex的声明式语言,在Flex4中变得更加强大。它可以用来定义组件、事件处理函数甚至...
[Bindable] private var count:int = 0; protected function button_clickHandler(event:MouseEvent):void { count++; label.text = count.toString(); } ]]> (event)" /> ``` - **函数声明**:在...
在Flex中,为了能够将前端的数据对象与后端的服务进行有效映射,通常会在Flex端定义一个实体类,并使用`Bindable`和`RemoteClass`注解来关联前后端的数据模型。 ```as [Bindable] [RemoteClass(alias=...
[Bindable] public function callFromJS():void { // 方法体 } ``` 在HTML中,可以这样调用: ```javascript var app = document.getElementById('myFlexApp'); app.callFromJS(); ``` 3. **事件处理**:...
当我们使用`[Bindable]`元数据标签标记一个类的成员变量时,Flex编译器会自动为这个变量生成相关的访问器(getter和setter)。例如,在提供的代码段中,`list`变量被标记为`[Bindable]`: ```actionscript public ...
### Flex图片上传实例详解 在本篇文章中,我们将深入探讨一个具体的Flex图片上传实例,并对其中涉及的关键技术点进行详细解读。此实例不仅提供了一个实际的上传图片的应用场景,而且还包含了一些实用的代码片段,这...
[Bindable] public class User { public var id:int; public var name:String; // ... } ``` ```csharp public class User { public int Id { get; set; } public string Name { get; set; } // ... } ``` ...
`[Bindable]`元标签用于标记变量,使其在改变时能触发视图的自动更新。例如,`_xmllistCollection`被标记为可绑定,当数据源发生变化时,DataGrid会自动更新显示。 综上所述,Flex开发Flex dataGrid分页技术涵盖了...
### 基于Flex的ArcGIS开发经典案例详解 #### 案例一:ArcGIS.Server.9.3与ArcGIS API for Flex实现基本的地图浏览 **目的:** 本案例旨在展示如何通过ArcGIS API for Flex在Flex应用程序中实现对自定义的ArcGIS....
若希望某个对象作为数据绑定的源,需在其属性前加上`[Bindable]`或`[Bindable("eventname")]`标记,确保属性变化时能触发数据绑定事件。 综上所述,Flex4.5提供了丰富的工具和机制,帮助开发者构建高性能、高互动性...
如果没有指定触发绑定的特定事件(如`[Bindable]`),Flex会默认监听`propertyChange`事件。只有当属性值的引用改变(即`!=`而不是`===`),Flex才会触发数据绑定。如果指定了自定义事件(如`[Bindable(event="event...
5. 数据管理:在Flex客户端,数据通常被封装在Flex的Model类中,这些Model类通过Bindable注解与视图组件关联,当数据发生变化时,视图会自动更新。而在服务器端,数据管理通常涉及实体类(Entity)和DAO,实体类对应...
### FLEX动态树与动态图表:深入理解及应用 在Adobe Flex框架中,`Tree`控件被广泛用于展示层次结构的数据,如目录、组织结构等。本文将深入解析如何在Flex中创建并自定义动态树,以及如何通过事件处理实现更高级的...
模型对象通常被标记为`Bindable`,这样当它们的数据发生变化时,可以自动通知视图进行更新。 **View(视图)** 视图层负责展示数据和接收用户输入。在Flex中,视图通常由MX或Spark组件构成,如Canvas、Button、...
《Flex4声明式编程在ActionScript中的应用探析》 Flex4是Adobe Flex框架的一个重要版本,它引入了全新的ActionScript编程模型,显著提升了开发效率和应用程序的表现力。本篇文章将深入探讨Flex4中的一项核心特性...
`[Bindable]` 注解表示`loadingxml`变量的变化将会自动更新UI。这意味着当数据变化时,树组件将自动刷新其视图。 #### 3. FunService类的作用 `FunService` 类似乎是自定义的服务类,负责与后端交互获取数据。在这...