Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash AS3:重写代理getProperty方法_Flash_Actionscript 3_Proxy_Getter Setter - Fatal编程技术网

Flash AS3:重写代理getProperty方法

Flash AS3:重写代理getProperty方法,flash,actionscript-3,proxy,getter-setter,Flash,Actionscript 3,Proxy,Getter Setter,我在尝试使用代理类并重写getProperty()方法时遇到了一个特殊的问题。我在下面附上了我的示例类代码: package { import flash.utils.Proxy; import flash.utils.flash_proxy; public class Thing extends Proxy { // holder object private var _holder:Object; /**

我在尝试使用
代理
类并重写
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];
        }
    }
}
我一直在尝试使用它使一些属性成为只读的(根据a上的回答),但是有一些奇怪的行为我似乎无法解决

使用上述方法,我尝试访问变量
stuff
,如下所示:

var t:Thing = new Thing();
trace(t.stuff);
但是,这会引发以下错误:

1119:通过引用访问可能未定义的属性内容 用静态类型的东西

但如果我这样做:

trace(t["stuff"]);

它很好用。我做错了什么?

这是因为你的类不是动态的,只要添加“dynamic”关键字,一切都会好起来:

public dynamic class Thing extends Proxy