在ActionScript 3中进行开发时,我经常发现自己正在寻找一种方法来实现类似于python的__getattr__
/ __setattr__
魔术方法提供的方法,即能够拦截属性查找实例,并做一些自定义的事情。
在ActionScript 3中是否有一些可接受的方法可以实现此目的?在AS3中,属性查找对于正常(密封)和动态类的行为略有不同 - 理想情况下,对于两种情况,这将以相同的方式工作。在python中,这对于各种对象(当然!)都很有效,即使对于dict本身的子类也是如此!
答案 0 :(得分:0)
查看flash.utils.Proxy
对象。
使用Proxy类可以覆盖 ActionScript的默认行为 操作(例如检索和 修改对象上的属性。
答案 1 :(得分:0)
在AS3中,您可以编写显式变量访问器。
示例Class1
:
private var __myvar:String;
public function get myvar():String { return __myvar; }
public function set myvar(value:String):void { __myvar = value; }
现在,当您创建Class1
的实例时,您可以通过访问器函数访问__myvar。
如果你想设置bindable那个var你必须把[Bindable]关键字放在它的一个访问者身上。
此外,您还可以仅实现getter或setter,因此您的var将只读或写。
我希望它有所帮助。