Actionscript - 如何覆盖获取类的预定义属性?

时间:2011-01-13 20:16:19

标签: flash actionscript-3 actionscript proxy proxy-classes

我有一个扩展Proxy类的类,并且有一个名为num的静态定义的成员变量:

public dynamic class TestProxy extends Proxy
{
 private var num:Number = 100;

 public function TestProxy()
 {
  super();
 }

 override flash_proxy function getProperty(name:*):*
 {
  trace("***** "+name);
 }
}

我希望在尝试访问num时调用getProperty()。它适用于任何尚未存在的字段,但不适用于预定义的字段。

有没有办法让这种情况发生?我可以以某种方式动态摆脱num?或其他什么?

2 个答案:

答案 0 :(得分:0)

如果是预定义的,为什么不能使用getter / setter方法和私有var的代理访问?

private var _num:Number = 100;
//....
function get num () : Number { }
function set num (val : Number) : void { }

答案 1 :(得分:0)

无法Proxy访问类的私有预定义属性。如果您想要访问它,请将其公开,或重命名该变量,然后回复num次来电:

public dynamic class TestProxy extends Proxy
{
    private var _num:Number = 100;

    public function TestProxy()
    {
        super();
    }

    override flash_proxy function getProperty(name:*):*
    {
        if (name == "num")
        {
            return _num;
        }
    }
}