AS3的Proxy类

Proxy类是AS3中的一个用来覆盖元运算符 的类。Proxy类没有构造器,不能被实例化,只能通过继承来使用(类似于抽象类)。

Proxy类的基本用法如下:

  1. package
  2. {
  3. import flash.utils.Proxy;
  4. import flash.utils.flash_proxy;
  5. dynamic public class Temp extends Proxy
  6. {
  7. override flash_proxy function XXXX(XXX):XXX
  8. {
  9. }
  10. }
  11. }

1, 写一个类继承Proxy;

2, 记得要导入Proxy和flash_proxy,后者在Flex Builder的自动提示中没有找到;

3, 使用override flash_proxy function来开始你的覆盖方法。

在上面的例子中,XXXX(XXX):XXX处可用的方法如下:(按帮助文档中的方法翻译)

  1. callProperty(name:*, … rest):*

调用一个该类中不存在的方法的时候执行。

  1. deleteProperty(name:*):Boolean

删除一个该类中不存在的对象的时候执行。

  1. getDescendants(name:*):*

调用descendant accessor运算符的时候执行。descendant accessor运算符是两个连续的“.”号。

  1. getProperty(name:*):*

调用一个该类中不存在的变量的时候执行。

  1. hasProperty(name:*):Boolean

执行类的hasOwnProperty方法时,如果查询的属性名称在类中未有定义,则调用此方法。hasOwnProperty是Object对象的方法,所以所有的类都有此方法。

  1. isAttribute(name:*):Boolean

未知。Checks whether a supplied QName is also marked as an attribute.

  1. nextName(index:int):String
  2. nextNameIndex(index:int):int
  3. nextValue(index:int):*

这三个基本上是一起用的,在for in和for each循环中获取下一个值。nextValue用于for each,nextName用于for in。在获取之前都会执行一次nextNameIndex。如果返回的int值是0,表示循环结束。否则,会根据nextNameIndex的返回int 来获取name或者value。

  1. setProperty(name:*, value:*):void

当给对象中一个未定义的属性赋值的时候,执行此方法。



发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(Spamcheck Enabled)