Ну, на самом деле я в основном устанавливаю события в коде, так что даже не так, как в вашем первом примере, но, скажем, в полном вызове события:
component.addEventListener(<event>, <handler>, <usecapture>, <priority>, <weakreference>)
всегда используя все 5 параметров.Я делаю это в коде, так как я, как правило, удаляю слушателя, когда он не нужен, но затем добавляю его снова, когда это необходимо: это можно сделать только в коде.
Я всегда использую все 5 параметров, потому что это позволяет осуществлять точный контрольпо приоритетам (кто получает событие первым), во-вторых, из-за управления памятью: если я случайно забуду удалить прослушиватель, а eventdispatcher - единственная надежная ссылка на обработчик событий, сборщик мусора все еще сможет удалить объектобработчик принадлежит.Я думаю, что это само по себе стоит определить обработчики событий в коде.
Возвращаясь к вашему вопросу: я никогда не находил такой пример, как ваш второй, я обнаружил что-то вроде этого:
<mx:HTTPService id="httpserviceCheckUpdate"
method="POST"
url="http://abc.com/actions.php"
resultFormat="text"
fault="httpservicexml_faultHandler(event)"
result="httpserviceCheckUpdate_resultHandler(event)">
<mx:request xmlns="">
<action>versionCheck</action>
</mx:request>
<mx:result>
<![CDATA[
import ....ResultEvent;
protected function httpserviceCheckUpdate_resultHandler(event:ResultEvent):void
{
var version:Number = event.result.text.version as Number;
var xmldata:XML = XML(event.result);
// and all the processing you want to do
}
]]>
</mx:result>
</mx:HTTPService>
как вы видите, у вас есть полная функция подписи, включая событие здесь.Единственное отличие состоит в том, что обработчики, определенные в компоненте, будут вызываться раньше, чем те, которые определены в контейнере, за исключением того, что я считаю их одинаково хорошими и оба хуже, чем установка обработчиков в коде.