После года Ruby от подобных сюжетов хочется рыдать в голос. Встреча с Flash (спасибо криворуким индусам - с версии 6 пользоваться им на Маке все равно что заниматься анальным онанизмом) заставляет плакать, особенно от того, как они весело вкручивают туда Java-функциональность (не пойму только зачем, кроме code complete):

public function pullXml(path:String):Boolean {
  portXml = new XML();
  portXml.ignoreWhite = true;
  var aRef = this; /* на месте Мартина Фаулера я бы начал рыдать отсюда */
  portXml.onLoad = function(status:Boolean) {
		aRef._xmlCallback(status);
  }
  portXml.load(path);

  return true;
}

Поясним пикантность сниппета.

  1. В загрузчике XML во Flash отсутствует синхронная загрузка. То есть вообще.
  2. Заметьте тонкую игру в Java с подсказками типов. При этом не забывайте, что все можно сделать просто Object и забыть об этом.
  3. Обратите внимание что все кривокобыльные костыли JavaScript остаются на месте - например aRef
  4. Поскольку это JavaScript (а никакая не Java) нельзя просто назначить callback присвоением собственного метода - это по факту копирует метод в XML-обьект.
  5. private или public при этом _xmlCallback - никого не волнует. Потому что это JavaScript сколько бы индусы не пытались доказать обратное.
  6. Угадайте, что возвращает typeof(this) во всех (совершенно всех) флешевых ООП-конструкциях? Правильно. Object. Всегда. Чтобы жизнь была интересна и полна.
  7. Проверка на undefined происходит только при компиляции. Потому что Javascript.

Такое вот у нас ООП. Скорее бы сдать эту дрянь. Констатирую что чудовищнее этого был только Lingo в Director. Как жаль что нету альтернативы этому кошмару.

Upd: А вот такой у них поиск по документации. Сраный Бангалор.

А теперь поищем слово "и"