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