我不知道这是否有特殊名称,甚至可能。考虑一下这段代码;
public dynamic class Foo {
public function set (_key:String,_value:*):void {
this[_key] = _value;
trace(this[_key] + " property added.");
}
}
跟踪代表了使用属性键和/或值完成的一些额外工作。现在我们可以使用set函数创建任何属性。
myFoo.set("prop1",14);
myFoo.set("prop2","test");
etc...
有没有办法修改此功能,以便它对任何属性生效?
myFoo.prop1=14;
myFoo.prop2="test";
我希望它像一个全局的setter函数,它在你创建/修改对象的任何属性时生效。我打算以类似的方式创建一个get函数。
答案 0 :(得分:2)
您需要扩展Proxy类并覆盖setProperty
override flash_proxy function setProperty(_key:*, _value:*):void {
this[_key] = _value;
trace(this[_key] + " property added.");
}