O melhor é usar um singleton e fazer um bind da propriadade a uma
propriadade desse singleton. Depois basta alterar a propriadade no singleton
e o seu canvas altera automaticamente.
Exemplo
No seu b_menuprinc
click=myModelLocator.getInstance().meuCavasVisivel =
myModelLocator.getInstance().meuCavasVisivel == true? false:true
e no seu canvas
<mx:Canvas visible={ myModelLocator.getInstance().meuCavasVisivel }
includeInLayout={ myModelLocator.getInstance().meuCavasVisivel }/>
myModelLocator e um AS deste genero
package
{
[Bindable]
public class GeralModelLocator
{
private static var modelLocator:
myModelLocator;
public static function getInstance() :
myModelLocator
{
if ( modelLocator == null )
modelLocator
= new myModelLocator ();
return modelLocator;
}
public function myModelLocator ()
{
if (myModelLocator.modelLocator != null )
throw new
Error( "Only one myModelLocator instance should be instantiated" );
}
public var meuCavasVisivel:Boolean=true;
}
}
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf
Of Giancarlo Faccio Hammes
Sent: sexta-feira, 2 de Fevereiro de 2007 10:30
To: [email protected]
Subject: [flexdev] Re: Componentes
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 <mailto:[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 <mailto:[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]
<mailto:[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 <mailto:[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 < <mailto:[EMAIL PROTECTED]>
[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
<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
-~----------~----~----~----~------~----~------~--~---