2
我尝试使用Proxy
类并覆盖getProperty()
方法时遇到了一个特殊问题。我已经把它贴在下面我举的例子类代码:AS3:重写代理getProperty方法
package
{
import flash.utils.Proxy;
import flash.utils.flash_proxy;
public class Thing extends Proxy
{
// holder object
private var _holder:Object;
/**
* Constructor
*/
public function Thing()
{
_holder =
{
stuff: "thing"
};
}
/**
* Override getProperty
*/
override flash_proxy function getProperty(name:*):*
{
trace(name + " being accessed");
return _holder[name];
}
}
}
我一直在试图用这个做一些属性为只读(按上一个previous question of mine答案),但有一些奇怪的行为,我可以似乎没有解决。
使用上面,我尝试访问变量stuff
像这样:
var t:Thing = new Thing();
trace(t.stuff);
然而,这将引发以下错误:
1119: Access of possibly undefined property stuff through a reference with static type Thing.
但是,如果我这样做:
trace(t["stuff"]);
它工作正常。我究竟做错了什么?