0

我目前正在从事一个涉及重新实现 Array 类的项目。出于兼容性原因,这个对象需要是一个数组,同时我还需要控制写入的内容。

我似乎找不到任何方法来检查 AS3 中动态对象内的属性创建。可以像 Event.ADDED_TO_STAGE 一样工作的东西,但又像 ClassEvent.PROPERTY_ADDED。

我覆盖了 push、splice 等方法,但我无法控制直接分配:MyArray[i] = ...

这样的事情甚至可能吗?

当然,我可以在其他地方进行某种验证,但这将涉及访问我无法修改的部分代码。

谢谢你的时间 !

4

1 回答 1

0

我不确定我是否完全关注你,但你可能正在寻找 Proxy 类:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/Proxy.html

底部的示例向您展示了如何覆盖直接分配:

override flash_proxy function setProperty(name:*, value:*):void {
    _item[name] = value;
}

使用它,您将能够调度一个自定义事件,该事件将在任何时候将项目添加到您的 ProxyArray 时触发

于 2012-11-09T03:38:23.443 回答