0

我有一个扩展代理类的类,并且有一个静态定义的成员变量,称为num

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

 public function TestProxy()
 {
  super();
 }

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

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

有什么办法可以做到这一点吗?我可以以某种方式动态摆脱num吗?或者是其他东西?

4

2 回答 2

0

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

private var _num:Number = 100;
//....
function get num () : Number { }
function set num (val : Number) : void { }
于 2011-01-13T20:27:10.777 回答
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;
        }
    }
}
于 2011-01-13T21:06:38.410 回答