Acabei encontrando um modo, mas ainda queria saber se é a melhor forma.

Para melhor compreensão estou utilizando um Presentation Pattern, mais
especificamente o Presentation Model (
http://weblogs.macromedia.com/paulw/archives/2007/10/presentation_pa_3.html
).

O problema (acho que seja isso) é que minhas classes 'view' são controladas
por uma classe órfã (não herdando de ninguém). No caso, tenho um componente
LoginFormView que possui um objeto LoginForm que é responsável por tratar os
dados e estados do componente. Quando ocorria o evento de clique no botão,
dentro do LoginFormView, eu faço uma chamada à um método de LoginForm, que
por sua vez executa um dispatchEvent.

A alternativa que encontrei foi passar por parâmetro uma referência ao
componente e ele ser o disparador. Funcionou, mas não estou muito feliz com
a solução.

LoginFormView.mxml
<mx:Button click="loginForm.submitLogin(user.text, pass.text, this)/>

LoginForm.mxml
public function submitLogin(user:String, pass:String,
dispatcher:IEventDispatcher):void
{
   var userVO:UserVO = new UserVO();
   userVO.login = user;
   userVO.password = pass;

   var loginEvent:LoginEvent = new LoginEvent(LoginEvent.LOGIN,
userVO);
   dispatcher.dispatchEvent(loginEvent);
}

[]'s
Anderson Marcondes


2009/2/3 Anderson Marcondes <cont...@andersonmarcondes.com>

> Bom dia pessoal,
>
> Estou fazendo alguns testes, tentando montar um arquitetura para uma futura
> aplicação e me deparei com um problema aparentemente bobo.
>
> Tenho minha aplicação principal:
>
> <mx:Script>
>    [Bindable]
>    private var loginForm:LoginForm = new LoginForm();
> </mx:Script>
>
> <controller:Controller/>
> <view:LoginFormView loginForm="{loginForm}"/>
>
> Dentro desta classe LoginFormView (possui um objeto do da classe
> LoginForm), no evento 'click' do botão, faço uma chamada à uma função de
> LoginForm, onde ocorre o disparo de um evento (através de um objeto
> EventDispatcher criado / bubbles == true). Por fim, em minha classe
> Controller, adiciono um listener ao systemManager, mas por algum motivo
> desconhecido não está sendo capturado o evento.
>
> Detalhe que quando eu disparo o mesmo evento diretamente no botão
> <mx:Button click="dispatchEvent()"/>, funciona sem nem colocar o bubbles ==
> true.
>
> Alguma luz?! =D
>
> []'s
> Anderson Marcondes
>
>
>

--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a