我有一个dynamic Class
,我想做的是在运行时每次将属性附加到类时都调用一个方法。
例如:
dynamic class Example
{
public function Example()
{
trace("New instance created");
}
public function setter(name:String, value:String):Void
{
trace("Property '"+name+"' created with value '"+value+"'");
}
}
然后从时间轴向示例添加新属性时:
Example.newProperty = "some value";
我要它跟踪:
使用值“一些值”创建的属性“newProperty”
我完全意识到,通过使用如下函数来设置属性可以做到这一点:
public function setter(name:String, value:String):Void
{
this[name] = "some value";
trace("Property '"+name+"' created with value '"+value+"'");
}
并这样称呼它:
Example.setter("newProperty", "some value");
但是,我希望通过常规的
.dot
运算符添加属性时自动触发此方法,而不必显式调用函数。这可能吗?
最佳答案
因为是AS2,所以是的,您的类必须实现__resolve(x)
方法。但是,我认为这是一个非常有问题的设计决策。接受键和值的函数对我来说看起来要好得多,最后,它的代码更少。
关于flash - AS2:设置新属性时的调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9178988/