Bom, se o seu main.mxml que chama os outros componentes for o application, você pode fazer assim de qualquer lugar:
Application.application.id_do_componente.metodo(); ou Application.application.id_do_canvas.visible = false; Application.application.id_do_canvas.includeInLayout = false; O visible esconde e o includeInLayout faz com que ele não seja desenhado na tela e não ocupe o espaço onde ele está colocado. []'s André Gil. On 2/2/07, Giancarlo Faccio Hammes <[EMAIL PROTECTED]> wrote: > > Senhores, > fiz os testes e ainda não consegui fazer a coisa funcionar. :-( > Oque acontece é o seguinte, tenho um arquivo que define a minha barra de > menu (b_menuprinc.mxml) e outro que é um canvas(b_canvascli.mxml). Oque o > sistema deve fazer é, no click na opção do menu, alterar a propriedade > visible do canvas. Além desses dois ainda tenho um arquivo principal( > main.mxml) onde eu chamo os componentes e um script (b_interface.as) que é > o script que fará a alteração da propriedade. Se *incluo* o o arquivo de > script no arquivo b_menuprinc.xml ele diz que não reconhece a function > definida no Click do menu. Se eu insiro o script *direto* no arquivo > b_menuprinc.mxml, ele reconheçe a função mas acontece aquele velho problema > da ID do canvas (ele não sabe quem é). Alguém pode dar uma mão? É que eu to > aprendendo... hehe > Obrigado! > -- > Giancarlo Faccio Hammes > Analista de T.I > Setor de Tecnologia da Informação > Unimed Extremo Oeste Catarinense > email: [EMAIL PROTECTED] > msn: [EMAIL PROTECTED] > skype: nefariun_ec > (49) 36312204 > (49) 88012357 (Celular TI) > > ----- Original Message ----- > *From:* André Gil <[EMAIL PROTECTED]> > *To:* [email protected] > *Sent:* Thursday, February 01, 2007 1:29 PM > *Subject:* [flexdev] Re: Componentes > > Depende muito do componente que você estiver fazendo. Se você for > manipular ele, faça o script fora mesmo. Mas se você precisar que ele tenha > algum método que vai sempre ser chamado de fora, por exemplo, vai precisar > criar o script dentro dele como Public. E lá dentro, só o this para acessar > as propriedades dele mesmo. > > No Flex, tudo são componentes. Não sei se você já segurou o CTRL e clicou > em algum componente do Flex no Flex Builder, ele te leva direto para o > código do componente. Lá eles nunca usam o ID. O ID você passa quando vai > usar o componente, na criação de uma instância dele. > > []'s > > On 2/1/07, Giancarlo Faccio Hammes <[EMAIL PROTECTED]> wrote: > > > > Bom, colocar um script dentro do componente era oque eu estava tentando > > evitar mas como não tem outro jeito. > > Deve haver um bom motivo pra não ser permitido dar uma id para a tag > > principal. > > Eu vou testar então mas.. será que se eu der um include no componente de > > um arquivo de script ele vai entender o this? hehe > > agradeço a atenção de todos... > > mais uma dúvida solucionada... > > :-D > > -- > > Giancarlo Faccio Hammes > > Analista de T.I > > Setor de Tecnologia da Informação > > Unimed Extremo Oeste Catarinense > > email: [EMAIL PROTECTED] > > msn: [EMAIL PROTECTED] > > skype: nefariun_ec > > (49) 36312204 > > (49) 88012357 (Celular TI) > > > > ----- Original Message ----- > > *From:* André Gil <[EMAIL PROTECTED]> > > *To:* [email protected] > > *Sent:* Thursday, February 01, 2007 10:30 AM > > *Subject:* [flexdev] Re: Componentes > > > > Giancarlo, > > > > Então, eu tinha dito que você pode usar o ID na hora de chamar o > > componente, como o Fábio disse, mas isso só vai ajudar se você tiver um > > Script na aplicação e quiser manipular o componente. Por exemplo: > > > > <mx:application> > > <mx:script> > > private function teste():void{ > > myComponent.width = 100; > > } > > </mx:script> > > > > <c1:componente id="myComponent" /> > > </mx:application> > > > > Mas se você precisar criar o <script> dentro do componente, você pode > > usar assim: > > > > <mx:script> > > private function teste():void{ > > this.width = 100; > > } > > <mx:script> > > > > Os exemplos devem estar errados, mas foi só pra mostrar a idéia, hehehe. > > > > []'s > > André Gil > > > > > > On 2/1/07, João Fernandes < [EMAIL PROTECTED]> wrote: > > > > > > Giancarlo, > > > > > > > > > > > > Como já foi explicado, pode usar this para referênciar o componente em > > > questão. > > > > > > > > > > > > Se usar > > > > > > <mx:Canvas xmlns:mx="blablablala" > > > > > > > > > > > > > <mx:Script> > > > > > > Function minhafuncao():void{ > > > > > > this.width = this.width + 30; > > > > > > } > > > > > > </mxScript> > > > > > > </mx:Canvas> > > > > > > > > > > > > O que vai fazer é quando chamar a função minhafuncao, o seu componente > > > vai aumentar de 30 pixeis em largura. O scope this referece sempre ao > > > componente externo onde se está a executar o código. Não precisa de dar um > > > id ao seu componente, aliás, não consegue mesmo. > > > > > > > > > > > > João Fernandes > > > > > > > > > > > > *From:* [email protected] [mailto:[EMAIL PROTECTED] *On > > > Behalf Of *Giancarlo Faccio Hammes > > > *Sent:* quinta-feira, 1 de Fevereiro de 2007 11:46 > > > *To:* [email protected] > > > *Subject:* [flexdev] Re: Componentes > > > > > > > > > > > > Desculpe André, mas não entendi direito. > > > > > > Na verdade o problema ocorre não no Action Script e sim na hora de > > > compilar o projeto do componente. O Flex apresenta uma crítica ao código > > > do > > > componente onde diz que não se pode dar uma id para a tag principal. Por > > > exemplo: > > > > > > quando crio um componente baseado em Canvas e coloco uma id para essa > > > tag: > > > > > > <mx:canvas id="canvasteste"> > > > > > > ele me diz que não é possivel definir uma id para a tag root do > > > componente. > > > > > > então não sei como manipular uma propriedade de canvas através de > > > action script sem poder dar um nome a ele. posso fazer uma gambiarra.... > > > > > > <mx:canvas> > > > > > > <mx:canvas id="canvasteste"> > > > > > > </mx:canvas> > > > > > > </mx:canvas. > > > > > > > > > > > > mas isso é uma engenbração muito da ordinária... > > > > > > :-D > > > > > > -- > > > Giancarlo Faccio Hammes > > > Analista de T.I > > > Setor de Tecnologia da Informação > > > Unimed Extremo Oeste Catarinense > > > email: [EMAIL PROTECTED] > > > msn: [EMAIL PROTECTED] > > > skype: nefariun_ec > > > (49) 36312204 > > > (49) 88012357 (Celular TI) > > > > > > ----- Original Message ----- > > > > > > *From:* André Gil <[EMAIL PROTECTED]> > > > > > > *To:* [email protected] > > > > > > *Sent:* Thursday, February 01, 2007 9:30 AM > > > > > > *Subject:* [flexdev] Re: Componentes > > > > > > > > > > > > Oi Giancarlo, > > > > > > Se eu entendi bem o seu problema, é no Action Script do componente que > > > você não sabe como chamá-lo? > > > Se for isso, basta você usar assim: > > > > > > this.propriedade = valor; > > > > > > Você não pode definir mesmo uma ID no componente, só na utilização > > > dele. Mas o "this" retorna o componente, não importando qual ID ele tenha. > > > > > > []'s > > > André Gil. > > > > > > On 2/1/07, *Daniel Schmitz* <[EMAIL PROTECTED]> wrote: > > > > > > > > > Tente usar ParentApplication > > > > > > On 2/1/07, Giancarlo Faccio Hammes < [EMAIL PROTECTED]> wrote: > > > > > > > > > > > > Bom dia Senhores, > > > > estou separando meus pojetos em componentes e adicionando-os ao meu > > > mxml > > > > principal através de mxmlns. Porém, o compilador me avisa que não > > > posso > > > > definir uma id pra tag root dos meus componentes. Então como posso > > > > manipula-los através de scripts sendo que não posso chama-los? Estou > > > fazendo > > > > a coisa certa? Existe outra forma de organizar meu mxml em outros > > > arquivos e > > > > fazer "includes" no main? > > > > Agradeço a atenção de todos. > > > > > > > > > > > > > > > > -- > > > > Giancarlo Faccio Hammes > > > > Analista de T.I > > > > Setor de Tecnologia da Informação > > > > Unimed Extremo Oeste Catarinense > > > > email: [EMAIL PROTECTED] > > > > msn: [EMAIL PROTECTED] > > > > skype: nefariun_ec > > > > (49) 36312204 > > > > (49) 88012357 (Celular TI) > > > > > > > > > > > > <BR<BR > > > > > > > > > > > > > > > > > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
