Как я могу получить доступ к неявному диспетчеру событий привязываемого объекта Flex? - PullRequest
1 голос
/ 05 марта 2010

Если я создаю объект примерно так:

class Foo {
    [Bindable] public var property: String;
}

Класс Foo имеет неявный диспетчер событий для обработки событий изменения свойств. Как я могу получить к нему доступ, не заставляя Foo явно расширять EventDispatcher?

1 Ответ

3 голосов
/ 05 марта 2010

Если вы добавите параметр -keep в строку компиляции, вы сможете увидеть, что он генерирует. Но чтобы объяснить это быстро, вы можете просто справиться с этим, как если бы это был обычный EventDisaptcher.

Итак, в ваш основной файл вы можете вставить это:

function callFirst(event:FlexEvent):void
{
   foo.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE,test);
   foo.property = 'something';
}

function test(E:Event):void
{
   trace (ObjectUtil.toString(E));
}

Распечатает:

(mx.events::PropertyChangeEvent)#0
  bubbles = false
  cancelable = false
  currentTarget = (Foo)#1
    property = "something"
  eventPhase = 2
  kind = "update"
  newValue = "something"
  oldValue = (null)
  property = "property"
  source = (Foo)#1
  target = (Foo)#1
  type = "propertyChange"
...