`
hjy2099
  • 浏览: 262801 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Flex中通过监听ObjectProxy的propertyChange事件检测一个Object是否变

    博客分类:
  • Flex
阅读更多

接下来的例子演示了Flex中通过监听ObjectProxy的propertyChange事件,检测一个Object是否变化。

让我们先来看一下Demo可以右键View Source或点击这里察看源代码):

 

 

下面是完整代码(或点击这里察看):

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  3.         layout="vertical"
  4.         verticalAlign="middle"
  5.         backgroundColor="white"
  6.         creationComplete="init();">
  7.  
  8.     <mx:Script>
  9.         <![CDATA[
  10.             import mx.events.PropertyChangeEvent;
  11.             import mx.utils.ObjectProxy;
  12.  
  13.             private var object:Object = {};
  14.             private var objectProxy:ObjectProxy;
  15.  
  16.             private function init():void {
  17.                 objectProxy = new ObjectProxy(object);
  18.                 objectProxy.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, updateChange);
  19.                 objectProxy.name = "My Object";
  20.                 objectProxy.id = 31;
  21.  
  22.                 /* Note: Any assignments made directly to the "object"
  23.                    Object do not dispatch the propertyChange event. */
  24.                 object.isDebug = false;
  25.                 object.id = 33;
  26.  
  27.                 /* Note: Even though the earlier assignment to the "id"
  28.                    property  didn't dispatch the propertyChange event,
  29.                    the "oldValue" property is still displayed as 33. */
  30.                 objectProxy.id = 45;
  31.             }
  32.  
  33.             private function updateChange(evt:PropertyChangeEvent):void {
  34.                 arrColl.addItem(evt);
  35.             }
  36.         ]]>
  37.     </mx:Script>
  38.  
  39.     <mx:ArrayCollection id="arrColl" />
  40.  
  41.     <mx:DataGrid dataProvider="{arrColl}"
  42.             sortableColumns="false"
  43.             draggableColumns="false"
  44.             width="100%"
  45.             height="100%">
  46.         <mx:columns>
  47.             <mx:DataGridColumn dataField="type" />
  48.             <mx:DataGridColumn dataField="property" />
  49.             <mx:DataGridColumn dataField="newValue" />
  50.             <mx:DataGridColumn dataField="oldValue" />
  51.             <mx:DataGridColumn dataField="source" />
  52.         </mx:columns>
  53.     </mx:DataGrid>
  54.  
  55. </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子
分享到:
评论

相关推荐

    Flex Data Binding详解

    Flex Data Binding是Adobe Flex框架中的核心特性之一,它允许开发者创建数据驱动的应用程序,通过将UI组件的属性与数据模型的属性直接关联,实现实时的数据同步。在Flex中,数据绑定确保当数据源发生变化时,相关的...

    flex数据绑定的原理

    当我们使用`[Bindable]`元数据标签标记一个类的成员变量时,Flex编译器会自动为这个变量生成相关的访问器(getter和setter)。例如,在提供的代码段中,`list`变量被标记为`[Bindable]`: ```actionscript public ...

    flex 4 生命周期

    在Flex 3到Flex 4的进化中,生命周期有了显著的变化,这些变化旨在提高性能、可扩展性和稳定性。 Flex框架的生命周期包括了组件的初始化、布局、绘制、更新和销毁等关键阶段。理解这些阶段对于优化代码、提升应用...

    js propertychange和oninput事件

    在处理前端交互逻辑时,事件监听是一个非常核心的概念。在某些场景中,需要对输入框的值实时进行检查和响应,典型的例子包括即时搜索功能,用户在输入框中输入内容后,系统能够实时地根据输入内容给出搜索结果。这种...

    js change,propertychange,input事件小议

    https://github.com/mootools/mootools-core/issues/2170这个问题来自IE(LTE8)中对checkbox和radio change事件的实现问题,在IE(LTE8)中测试下来,当你点击一个checkbox或者radio,它的change事件是不会立即触发,...

    FLEX DATA GRID 分页

    Flex Data Grid是Adobe Flex框架中的一个组件,全称为MX:DataGrid或Spark:DataGrid。它用于展示和操作表格形式的数据,支持多种功能,如列排序、选择行、自定义渲染等。在Flex 4之后,分为MX和Spark两个版本,MX ...

    js与jquery实时监听输入框值的oninput与onpropertychange方法

    主要介绍了js与jquery实时监听输入框值的oninput与onpropertychange方法,实例分析了oninput与onpropertychange实现下拉框里自动匹配关键字实时监听文本框value值变化的功能,需要的朋友可以参考下

    观察者模式与JavaBeans事件

    通过以上步骤,你可以构建一个简单的气象观测系统,其中各个组件可以通过JavaBeans事件机制进行通信。实验报告应详细记录每个步骤的过程,包括代码实现、运行结果以及对观察者模式和JavaBeans事件理解的总结。 在...

    Flex4自定义组件开发.pdf

    自定义组件是Flex4开发中的一个重要方面,它不仅可以让开发者根据项目需求创建独特的UI元素,还可以极大地提高应用的表现力和用户体验。通过深入理解Spark架构以及组件的生命周期,开发者可以更高效地开发高质量的...

    jquery 实时监听输入框值变化的完美方法(必看)

    然而,上述代码中存在一个问题。当页面动态添加新的`&lt;input&gt;`元素时,由于`bind()`函数只对当前存在的元素生效,新添加的元素不会被监听到。为了解决这个问题,可以使用jQuery的`live()`函数。`live()`函数能为将来...

    让input框实现类似百度的搜索提示(基于jquery事件监听)

    挺炫的一个效果,百度和谷歌好像已实现好多年了,我以为...通过监听input和propertychange事件实现实时的改动监听,input是主流,propertychange是ie,你懂的;通过ajax实现post动作,把返回内容显示成类似选框的形式;

    FLEX数据绑定四种方式

    默认情况下,当[Bindable]变量变化时,会触发“propertyChange”事件,而Flex会自动监听这个事件并更新UI。通常情况下,只需要使用简写形式[Bindable]即可。 **注意事项** - 当[Bindable]用于函数时,只能在setter...

    flex数据绑定

    数据源变化通常会触发`propertyChange`事件,Flex框架会监听这些事件并更新绑定的目标。 6. **延迟绑定**(lazy binding): 当数据源在初始化时可能不存在或未准备好时,可以使用`defer`属性延迟绑定的执行。 7...

    js与jquery实时监听输入框值的oninput与onpropertychange方法.docx

    在 Web 开发中,实时监听输入框值的变化是一个常见的需求,例如自动完成功能、实时搜索、表单验证等。在这个资源中,我们将介绍 JS 与 jQuery 实时监听输入框值的 oninput 与 onpropertychange 方法,并通过实例分析...

    flex学习记录非常详细

    在本文中,我们将深入探讨Flex中的数据绑定机制,这是Flex应用中一个至关重要的概念。 数据绑定是Flex中的一种强大特性,它使得UI组件的属性可以直接与应用程序的数据模型进行连接。这意味着,当数据模型发生改变时...

    flex as3 元数据标签综合

    `Bindable`是Flex中最常用的元数据标签之一,它用于通知Flex框架当属性发生变化时自动派发一个`propertyChange`事件。 - **无参数的Bindable** 当没有参数传递给`Bindable`时,表示当对应的属性值改变时会默认...

    JS实现移动端实时监听输入框变化的实例代码

    通过设置一个定时器(如1秒),在定时器回调函数中检查输入框的当前长度与上一次的长度。如果长度发生变化,就执行查询操作。这种方法的优点是实现简单,但缺点是可能会频繁触发查询,增加服务器负担,且无法做到...

    使用PropertyChangeSupport监控变量

    要使用`PropertyChangeSupport`,首先需要在你的类中创建一个`PropertyChangeSupport`实例,然后通过`addPropertyChangeListener`方法添加监听器,通过`removePropertyChangeListener`方法移除监听器。例如: ```...

Global site tag (gtag.js) - Google Analytics