Проблема в том, что в интерфейсе класса есть очень важный метод nextName():String, который должен возвращать имена свойств. Проблема в том, что этот метод возвращает строку и вызывает проблемы в случае, если имя свойства находится в пользовательском пространстве имён. Надо вернуть QName, а можно только строку. Будет хорошо, если кто проголосует и/или проследит за выполнением:
Issue FP-4293: flash.utils.Proxy nextName return type
Заодно можете глянуть и этот:
Issue ASC-4046: for..in cycle can not accept property names with QName or other type
Записи с меткой «flash.utils.Proxy»
Issue FP-4293: flash.utils.Proxy nextName return type
07.04.2010Объекты с поддержкой динамических имён свойств с использованием пользовательских пространств имён
06.04.2010Flex cookbook entry: How to and where store dynamic properties in custom namespaces.
Мне очень нравится в ActionScript 3 тесная интеграция с XML и популяризация пространств имён. Для поддержки свойств в различных пространствах имён даже создан отдельный класс – QName, объединяющий в себе указатель пространства имён и локальное имя. Но, получается что, для использования пространств имён отличных от базовых(AS3 и с пустым указателем) разработчик должен сам реализовать поддержку этих пространств имён, заранее объявив члены класса.
Динамические члены класса в пользовательских пространствах имён не поддерживаются, кроме XML объектов. Чтоб включить такую поддержку необходимо расширить класс flash.utils.Proxy и самому её реализовать. Это и было сделано в классах описываемых в этом посте – они разрешают добавлять в себя динамические члены класса в любых пространствах имён(кроме flash_proxy, в сочетании с зарезервированными локальными именами, методы которых уже реализованы).
Особенность методов XML объектов в ActionScript 3
16.02.2010Наткнулся на немного неожиданную "особенность" при работе с методами XML объектов. Такое забывать нельзя, поэтому подробности под катом.
Разница в выборке «.*» в XML и во flash.utils.Proxy
08.01.2010В XML выборка элементов через знак звёздочки говорит о том, что надо выбрать все дочерние узлы, не зависимо от типа узла или пространства имён XML элемента. Класс flash.utils.Proxy даёт нам возможность пользоваться выборками в своих классах. Я обнаружил разницу в поведении и дальше делюсь наблюдениями.
Информация о происхождении экземпляра QName
07.01.2010Flex cookbook entry: How to know QName instance origins.
В ActionScript 3 у простого типа QName есть возможность хранить информацию о происхождении экземпляра, т.е. можно узнать, это имя атрибута или узла/свойства. Но я не смог найти простого и прямого способа «выдернуть» эту информацию из экземпляра QName. Поэтому дальше горожу свой огород.
flash.utils.Proxy и Object.constructor
04.01.2010Небольшой совет для всех кто активно использует или собирается использовать класс flash.utils.Proxy – всегда реализуйте свойство constructor возвращающее тип(экземпляр типа Class) данного объекта.
XML события или XMLCover + XMLNotifier = Bindable XML
29.08.2008Как-то блуждал по блогам и наткнулся на страничку с описанием интересной скрытой возможности XML в ActionScript 3 – метод XML.setNotification(). Этот метод позволяет получать данные об изменениях в XML дереве, за которым установили такое наблюдение. Я воспользовался этим методом и написал ряд классов, которые позволяют получать события об изменениях в XML дереве и использовать биндинг с XML во Flex.


