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