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

发布于 2024-10-12 05:43:05 字数 438 浏览 7 评论 0原文

我有一个扩展 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 吗?或者其他什么?

I have a class which extends the Proxy class, and has a statically defined member variable called num:

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

 public function TestProxy()
 {
  super();
 }

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

I want getProperty() to be called when I attempt access num. It works for any field which does not already exist, but not for fields that are predefined.

Is there some way to make this happen? Can I somehow dynamically get rid of num? Or something else?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁月流歌 2024-10-19 05:43:05

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

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

If it's predefined why can't you use a getter/setter method and proxy access to private var that way?

private var _num:Number = 100;
//....
function get num () : Number { }
function set num (val : Number) : void { }
檐上三寸雪 2024-10-19 05:43:05

无法让 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;
        }
    }
}

There is no way to have Proxy access private pre-defined properties of a class. Either make it public if you want it accessed, or rename the variable and then respond to num calls:

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;
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文