ObjectProxy 和PropertyChangeEvent 对于类的属性变动添加监听,特别适合动态类的属性变动的监听。
记录日志处理
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
import mx.events.PropertyChangeEvent;
import mx.utils.ObjectProxy;
import mx.utils.ObjectUtil;
import mx.utils.StringUtil;
private var p:ObjectProxy =null;
private function application1_creationCompleteHandler():void
{
p= new ObjectProxy(btn);
p.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, updateHandler);
}
private function updateHandler(event:PropertyChangeEvent):void
{
var s:String=StringUtil.substitute("属性被修改('{0}', {1}, {2}, {3}, '{4}')",
event.kind,
event.property,
event.oldValue,
event.newValue,
event.target.uid);
area.text=s+event.source.toString();
}
protected function btn_clickHandler(event:MouseEvent):void
{
btn.label="show demo";
}
]]>
</mx:Script>
<mx:Button id="btn" label="demo" click="btn_clickHandler(event)" />
<mx:TextArea id="area" x="0" y="30" width="418" height="213"/>
动态类的监听,一样
package com
{
import mx.events.PropertyChangeEvent;
import mx.utils.ObjectProxy;
import mx.utils.StringUtil;
[Bindable]
public dynamic class EmployeeRecord
{
}
}
import mx.utils.StringUtil;
import mx.events.PropertyChangeEvent;
import mx.utils.ObjectProxy;
import com.EmployeeRecord;
private var p:ObjectProxy =null;
private function showProperties():void
{
var emp:EmployeeRecord = new EmployeeRecord();
p.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, updateHandler);
p.name = "Peter Griffen";
p.age = 22;
p.address = "123 St Peter Blvd, #552";
p.city = "Quahog";
p.state = "NY";
p.zip = "02593";
var displayInfo:Function = function ():String
{
var out:String;
out = "Employee Record:\n";
out += "Name: " + emp.name + "\n";
out += "Age: " + emp.age + "\n";
out += "Address: " + emp.address + "\n";
out += "City: " + emp.city + "\n";
out += "State: " + emp.state + "\n";
out += "Zip: " + emp.zip + "\n";
return out;
}
}
private function updateHandler(event:PropertyChangeEvent):void
{
var s:String=StringUtil.substitute("属性被修改('{0}', {1}, {2}, {3}, '{4}')",
event.kind,
event.property,
event.oldValue,
event.newValue,
event.target.uid);
}
分享到:
相关推荐
JSON在Flex3中的使用涉及到两个主要类:`JSON`和`ObjectProxy`。`JSON`类提供了一系列静态方法,如`parse()`和`stringify()`,用于在ActionScript对象和JSON字符串之间进行转换。`parse()`方法接收一个JSON字符串并...
- **Flex解析JSON**:Flex提供了`ObjectProxy`和`ArrayCollection`来处理JSON数据,可以方便地将JSON对象转换为Flex中的数据结构。 - **Java生成JSON**:Java有许多库支持JSON,如Jackson、Gson、org.json等。这些...
3. **ObjectProxy**: `ObjectProxy`是Flex提供的一个特殊类型的对象,它可以作为数据绑定的目标。使用`ObjectProxy`可以提高性能,并支持更复杂的绑定逻辑。本示例中,`langInfo`变量即为`ObjectProxy`类型。 4. **...
- Flex提供了`mx.utils.ObjectProxy`类和`mx.rpc.xml.XMLUtil`类来处理XML。你可以使用`new XML()`创建一个空的XML对象,并通过`.addChild()`、`.appendChild()`等方法添加元素。 3. **读取本地XML文件**: - ...
Flex提供了`ObjectProxy`和`XMLListCollection`等工具类来帮助处理这些数据。 6. **使用HTML模板**:在提供的`html-template`目录中,通常包含Flex应用程序嵌入到HTML页面的方式。这使得Flex应用可以通过浏览器访问...
解决方法是使用ObjectProxy类,它可以充当IEventDispatcher,从而允许在任何对象上进行数据绑定。 ### 8. MVC架构中,AS3时是写在MXML还是AS文件中? 在Flex中,MVC架构被广泛采用,其中MXML用于定义视图,而...
同时,我们还将讨论数据管理和状态管理,如使用ArrayCollection和ObjectProxy处理数据,以及维护用户会话状态。 此外,教程还会涉及实时通信,如使用LCDS的LiveCycle Collaboration Service实现实时消息传递。这...
在Flex中使用JSON,首先需要了解两个关键的类:`flash.utils.ObjectProxy`和`flash.net.URLLoader`。`ObjectProxy`允许你通过代理方式操作JSON对象,使其更易于访问和处理。`URLLoader`则用于加载远程数据,例如从...
例如,可导入`mx.rpc.events.ResultEvent`和`mx.rpc.services.ObjectProxy`等类,用于处理远程调用的结果和代理服务器通信。 通过上述步骤,开发者可以初步掌握Flex Data Service的基础使用,构建出简易的分布式...
当 `Model` 中的数据需要作为数据源时,由于其默认为 `Object` 类型,通常需要转换为 `ObjectProxy` 类型以实现绑定。 关于 `Bindable` 标签,它有以下用途: - 当应用于函数(setter 和 getter)时,称为函数级别...
在Flex中,`flash.utils.ByteArray`类可用于数据的二进制操作,而`XML`和`ObjectProxy`则提供了对象和XML之间的转换。 总的来说,Flex中的数据传递是一个复杂而重要的主题,涉及到组件通信、事件处理、数据管理等多...
Java调用OpenAMF是一种将Java应用程序与使用Adobe Flex或ActionScript 3的客户端进行通信的方式。OpenAMF是一个开放源代码的AMF(Action Message Format)桥接库,允许跨语言的数据交换,使得Java服务器可以与Flex或...
有些第三方库或组件,如FlexLib或mx.utils.ObjectProxy,提供了与Flex SDK 3.5兼容的单元格合并功能。这些库通常已经解决了与新版本SDK的兼容性问题,可以作为快速解决的手段。 5. **回退到Flex SDK 3.2**: 如果...
在ActionScript 3(AS3)中,JSON同样扮演着重要的角色,使得AS3可以方便地与服务器进行数据交互,尤其是在Flash或Flex开发中。 在AS3中,处理JSON主要依赖于`flash.utils.ObjectProxy`和`flash.utils.JSON`这两个...
通过深入研究这个聊天室项目,你可以提升ActionScript 3.0的编程技能,理解网络通信和实时交互应用的实现原理,这对于从事Flash或Flex开发工作的人来说是非常有价值的。同时,这些基础概念也可以迁移到其他编程语言...