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 <[email protected]>
> 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 [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---