Gabriela, passe então a instância do seu botão no evt.
var evt:AreaEvent = new AreaEvent(EventTypes.NOVA_AREA , event.target );
crie antes um evento personalizado que faça extend do Event e assim
poderá adicionar propriedades adicionais (neste caso o button).
Basta adicionar uma propriedade pública ex
public var button :Button e no construct do AreaEvent usa:
AreaEvent( type: String , btn : Button ){
super( type );
this.button = btn;
}
public var button : Button;
Assim no seu controller poderá usar algo do género
public function criarArea(evt:AreaEvent):void{
if(evt.button)
....
....
}
E continua a ter os componentes separados e com possibilidade de
re-utilização de código.
João Fernandes
gabriela perry wrote:
> João, percebi que não estou te ajudando a me ajudar.... desculpe.
>
> A classe ControlHelper.as tem métodos que executam dependendo do
> evento que for disparado pelo EditarArea.mxml
>
> Em EditarArea.mxml, clicar em um dos botões dela dispara o seguinte
> código (no corpo de EditarAreas.mxml)
>
> private function novaArea(event:MouseEvent):void
> {
> var evt:Event = new Event(EventTypes.NOVA_AREA);
> ApplicationController.getInstance().dispatch( evt );
> }
>
> A linha: "ApplicationController.getInstance().dispatch( evt ); " gera
> a execução de um método que está na classe ControlHelper.
> Dentro dela, quero acessar um button que está em EditarAreas.mxml.
>
>
> Gabriela Trindade Perry
> Designer - php/AS developer
> Msc Ergonomics (PPGEP/UFRGS)
> PhD Student Educational Technology (PPGIE/UFRGS)
> http://www.gabriela.trindade.nom.br
>
>
> ------------------------------------------------------------------------
> Date: Mon, 3 Sep 2007 13:58:25 +0100
> From: [EMAIL PROTECTED]
> To: [email protected]
> Subject: [riapt] Re: Referenciar componente
>
> Gabriela, suponho que o seu controlHelper esteja dentro do
> EditarAreas.mxml certo?
>
> se for o caso , é normal pois no momento de inicialização do
> EditarAreas.mxml, este irá inicializar os childs, um deles sendo o
> ControlHelper e outro o myButton.
> Ora o mybutton poderá ainda não existir aquando da inicialização
> do helper.
>
> 1º deveria tentar abstrair o seu helper para não ficar agregado a
> um componente externo e use antes getters e setters para receber
> as suas dependências.
>
> exemplo :
>
> package br.aeq.areas.controller
> {
>
> import mx.controls.Button;
> import br.aeq.views.EditarAreas
>
> internal final class ControlHelper
> {
> private var _targetButton:Button=mybutton // é esta linha que
> acusa o erro
>
> public function criarArea(evt:Event):void{
> if(_targetButton)
> ....
> ....
> }
>
> }
> public function set targetButton(btn:Button):void{
> _targetButton = btn;
> }
> public function get targetButton():Button{
> return _targetButton;
> }
> }
>
> e usar depois no seu código algo do género
>
> <ns:ControlHelper id="controller" targetButton="{ myButton }"/>
>
> João Fernandes
>
> gabriela perry wrote:
>
> Olá.
>
> A classe dentro da qual quero referenciar o componente é esta:
>
> package br.aeq.areas.controller
> {
>
> import mx.controls.Button;
> import br.aeq.views.EditarAreas
>
> internal final class ControlHelper
> {
> private var targetButton:Button=mybutton // é esta linha que
> acusa o erro
>
> public function criarArea(evt:Event):void{
> }
>
> }
> }
>
> O button foi criado no componente EditarAreas.mxml, que está
> em br.aeq.views
>
> Isso acontece porque a classe está em outra pasta?
>
>
> Gabriela Trindade Perry
> Designer - php/AS developer
> Msc Ergonomics (PPGEP/UFRGS)
> PhD Student Educational Technology (PPGIE/UFRGS)
> http://www.gabriela.trindade.nom.br
> <http://www.gabriela.trindade.nom.br/>
>
>
>
> ------------------------------------------------------------------------
> Date: Mon, 3 Sep 2007 10:49:44 +0100
> From: [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> To: [email protected] <mailto:[email protected]>
> Subject: [riapt] Re: Referenciar componente
>
> Gabriela,
>
> pode postar um pouco mais de código?
> Como está a utilizar a sua class?
>
> João Fernandes
>
> gabriela perry wrote:
>
> Olá.
>
> Me desculpem, é uma dúvida totalmente tola, mas não
> consigo perceber o que estou fazendo errado :(
>
> Gostaria de referenciar um Button, com id="mybutton",
> que está dentro de um
> componente customizado, localizado em
> br.aeq.views.EditarAreas
>
> Para tanto, escrevi na classo onde eu gostaria de
> refencir o Button:
>
> import mx.controls.Button;
> import br.aeq.views.EditarAreas;
>
> public class SomeClass {
> private var targetButton:Button=mybutton
>
> O que retorna (duas vezes) o erro 1120: Access of
> undefined property myButton
>
> O que está errado, por favor?
> Desde já agradeço a atenção.
>
> Gabriela Trindade Perry
> Designer - php/AS developer
> Msc Ergonomics (PPGEP/UFRGS)
> PhD Student Educational Technology (PPGIE/UFRGS)
> http://www.gabriela.trindade.nom.br
> <http://www.gabriela.trindade.nom.br/>
>
>
>
> ------------------------------------------------------------------------
> Get news, entertainment and everything you care about
> at Live.com. Check it out!
> <http://www.live.com/getstarted.aspx>
>
>
>
>
>
>
> >
--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Mailing List da Comunidade
Portuguesa de Desenvolvimento de RIAs - www.riapt.org" do Grupos Google.
Para enviar mensagens para este grupo, envie um email para
[email protected]
Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
Para mais opções, visite este grupo em
http://groups.google.com/group/riapt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---