No way!

A não ser que você passe o objeto que instanciou o classe como
parâmetro:

teste_cl = new TesteControl2(this);

Agora, isso aqui tá muito estranho:

public function TesteControl2()
{
   trace(parentDocument)
   trace(this);
   trace(this.parentDocument);
   parentDocument.TesteControl2.addEventListener(MouseEvent.CLICK,
botaoHandler);
}

Na ultima linha deste construtor, para quê você precisa referenciar o
"parentDocument.TesteControl2" sendo que você está dentro do próprio
"TesteControl2"? Ou seja, você não poderia fazer assim:

public function TesteControl2()
{
   trace(parentDocument)
   trace(this);
   trace(this.parentDocument);
   this.addEventListener(MouseEvent.CLICK, botaoHandler);
}

[]'s
Beck Novaes

On 10 jul, 17:26, Ricardo Ramires <[EMAIL PROTECTED]> wrote:
> Tenho uma aplicacao que estou desenvolvendo e gostaria de deixar nos
> arquivos mxml apenas os components com seus respectivos id's e fazer
> toda a programacao separada em classes mas nao to conseguindo acessar
> o documento superior com o parentDocument
>
> A idéia é se eu tiver um component chamado Teste.mxml teria também uma
> classe TesteControl.as com o código que manipula essa tela.
>
> Assim funciona mas sobe até a raiz:
>
> Teste.mxml
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> layout="vertical"
>         creationComplete="init()">
>
>         <mx:Script>
>                 <![CDATA[
>                         [Bindable]
>                         private var teste_cl:TesteControl;
>
>                         private function init():void
>                         {
>                                 teste_cl = new TesteControl();
>                         }
>                 ]]>
>         </mx:Script>
>
>         <mx:Button id="botao_btn" label="Clique"/>
>         <mx:Label id="texto_txt" />
>
> </mx:Application>
>
> TesteControl.as
>
> package
> {
>         import flash.events.EventDispatcher;
>         import flash.events.MouseEvent;
>         import mx.core.ApplicationGlobals;
>
>         public class TesteControl extends EventDispatcher
>         {
>                 public var raizDaAplicacao:Object = 
> ApplicationGlobals.application;
>
>                 public function TesteControl()
>                 {
>                         
> raizDaAplicacao.botao_btn.addEventListener(MouseEvent.CLICK,
> botaoHandler);
>                 }
>
>                 private function botaoHandler(botaoHandler:MouseEvent):void
>                 {
>                         raizDaAplicacao.texto_txt.text = "Clicou !";
>                 }
>         }
>
> }
>
> ---------------------------------------------------------
>
> Mas se a tela for um component, nao deu certo, tentei assim:
>
> 1 - Tenho a aplicacao (Teste2.mxml)
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> layout="vertical"
>         initialize="init()" xmlns:local="*">
>
>         <local:CompTeste />
>
> </mx:Application>
>
> 2 - Que chama o component(CompTeste.mxml):
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml";
> creationComplete="init()">
>
>         <mx:Script>
>                 <![CDATA[
>                         [Bindable]
>                         private var teste_cl:TesteControl2;
>
>                         private function init():void
>                         {
>                                 teste_cl = new TesteControl2();
>                         }
>                 ]]>
>         </mx:Script>
>
>         <mx:Button id="botao_btn" label="Clique 2"/>
>         <mx:Label id="texto_txt" />
>
> </mx:VBox>
>
> 3 - E tem a classe para controlar ele (TesteControl2.as)
>
> package
> {
>         import flash.events.MouseEvent;
>         import mx.core.UIComponent;
>
>         public class TesteControl2 extends UIComponent
>         {
>                 public function TesteControl2()
>                 {
>                         trace(parentDocument)
>                         trace(this);
>                         trace(this.parentDocument);
>                         
> parentDocument.TesteControl2.addEventListener(MouseEvent.CLICK,
> botaoHandler);
>                 }
>
>                 private function botaoHandler(botaoHandler:MouseEvent):void
>                 {
>                         parentDocument.texto_txt.text = "Clicou !";
>                 }
>         }
>
> }
>
> O que eu to querendo é acessar os id's dos components do mxml onde eu
> instanciei a classe...
>
> Se alguem puder dar uma luz, agradeço
>
> Ricardo


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Responder a