В ActionScript 3 добавлен новый класс Proxy (
flash.utils.Proxy) для замены методов addProperty и __resolve из ActionScript 1 и 2.
- addProperty(prop:String, getFunc:Function, setFunc:Function) : Boolean
использовался для динамического добавления getter/setter свойств в объект или класс. Параметры:
prop - имя создаваемого свойства объекта.
getFunc - функция, которая вызывается для возвращения значения свойства;
setFunc - функция, которая вызывается для установки значения свойства;
- __resolve - ссылка на определяемую пользователем функцию, которая вызывается, если ActionScript код ссылается на неопределенное свойство или метод.
В ActionScript 3 вы можете создать класс наследник от класса Proxy, который предоставляет следующие возможности:
- Перехватить чтение свойства
- Перехватить запись свойства
- Перехватить проверку свойства (на наличие)
- Перехватить удаление свойства
- Перехватить вызов метода
- Перехватить установку атрибутов
- Использовать [] для доступа к свойствам
Хоть возможности Proxy и превосходят то, что было доступно в AS1 и AS2, здесь есть и свои недостатки. Вы обязаны наследоваться от класса Proxy, нельзя унаследоваться от произвольного класса, например от Display objects, и получить возможности класса Proxy.
Proxy классы обычно используются для создания набора переменных с гибкими возможностями (например, Flex классы ArrayCollection, ListCollectionView, XMLListCollection).
Proxy класс более детально будет рассмотрен в следующих советах