Flash
Você está aqui: Home » Flash » Funções : localToglobal() e globalToLocal()
Funções : localToglobal() e globalToLocal()

Por Ken Awamura
INTRODUÇÃO
Ao criarmos / declararmos um Objeto no Flash, podemos considerar propriedades como por exemplo, a posição X e Y do mouse como sendo Locais às coordenadas de um movieClip ou globais em relação às coordenadas do Stage e com o uso das funções localToGlobal() e globalToLocal() podemos definir, em tempo de execução, se uma variável é local ou global.
--------------------------------------------------------------------------------
NESTE TUTORIAL
Criação de Objetos
Funções: localToGlobal(), globalToLocal(), object() e updateAfterEvent(mouseMove)
Output de resultados em um Dynamic textField
Utilização do Debugger
--------------------------------------------------------------------------------
IDÉIA GERAL DO TUTORIAL
Criação de um objeto chamado 'p' com o qual iremos alternar suas propriedades X e Y em relação à um movieClip chamado 'mc' e em relação às coordenadas do Stage principal.
O movieClip 'mc' é um quadrado localizado no centro do Stage com as respectivas coordenadas relativas ao Stage : 200,150
O Stage possui 400x300 pixel e sua origem 0,0 está no canto superior esquerdo
O objeto 'p' é criado no evento onClipEvent(mouseMove) do movieClip 'mc', portanto 'p' é um objeto interno ao movieClip 'mc'
--------------------------------------------------------------------------------
ETAPA 1 : OS COMPONENTES
Crie 2 layers : as e bg e na layer bg faça o seguinte :
Crie um movieClip com as seguintes dimensões : quadrado com 10,10 pixel
Coloque uma instãncia deste movieClip no centro do stage e nomeie 'mc' no painel Instance
Crie um campo texto do tipo Dynamic textField e nomeie 'out' no painel Text Options
Ative o seu Debugger no menu File / Publish Settings / Flash / Debbuging Permitted
--------------------------------------------------------------------------------
ETAPA 02 : O ACTIONSCRIPT
Selecione o movieClip 'mc' no Stage e abra o painel Actions. A idéia é criarmos um objeto chamado 'p' no evento mouseMove to movieClip. Este objeto receberá as coordenadas do mouse _xmouse e _ymouse, portanto as coordenadas x e y de 'p' serão necessariamente Locais ao movieClip 'mc'. Se quiséssemos que as coordenadas x e y de 'p' fossem Globais ao Stage teríamos que apontar _xmouse e _ymouse para o _root, i é : _root._xmouse e _root._ymouse. Porém podemos mudar esta relação com as funções localToGlobal() e globalToLocal(), que é o nosso objetivo.
Insira o seguinte actionScript :
onClipEvent(mouseMove)
{
p = new Object();
p.x = Math.round(_xmouse);
p.y = Math.round(_ymouse);
//this.localToGlobal(p);
_root.out = p.x + " : " + p.y;
updateAfterEvent(mouseMove);
}
--------------------------------------------------------------------------------
ETAPA 03 : DETALHANDO O ACTIONSCRIPT
p = new Object();
p.x = Math.round(_xmouse);
p.y = Math.round(_ymouse);
No evento mouseMove do movieClip é criado o objeto 'p' através do constructor new object();
Este objeto terá coordenadas x e y de acordo com as coordenadas do mouse
_root.out = p.x + " : " + p.y;
updateAfterEvent(mouseMove);
O textField 'out' que está no stage fará o output das coordenadas x e y do objeto 'p'.
Teste o filme e note que à princípio, ao movimentarmos o mouse, as coordenadas de 'p' são relativas ao movieClip ´mc', i é, ´mc' é a origem do objeto 'p'. Isto pode ser verificado no textField 'out' e via o Debugger.


--------------------------------------------------------------------------------
ETAPA 04. CONVERTENDO COORDENADAS LOCAIS PARA GLOBAIS
Com a função localToGlobal podemos agora converter as coordenadas x e y do objeto 'p' que à princípio são Locais para Globais.
Tire o comentário do código acima //this.localToGlobal(p); e verifique que agora ao testar seu filme as coordenadas de ´p' são globais em relação ao 0,0 do stage. Isto pode ser verificado no textField 'out' no Stage. Já no Debugger verifique que o objeto 'p' mantém suas coordenadas Locais, pois como já foi frisado antes sua declaração inicial foi Local : p.x = Math.round(_xmouse); e p.y = Math.round(_ymouse)
onClipEvent(mouseMove)
{
p = new Object();
p.x = Math.round(_xmouse);
p.y = Math.round(_ymouse);
this.localToGlobal(p);
_root.out = p.x + " : " + p.y;
updateAfterEvent(mouseMove);
}
--------------------------------------------------------------------------------
EXTRA
Experimente fazer o inverso, i é, declarando p.x e p.y como Global e utilizando a função inversa globalToLocal();
onClipEvent(mouseMove)
{
p = new Object();
p.x = Math.round(_root._xmouse);
p.y = Math.round(_root._ymouse);
this.globalToLocal(p);
_root.out = p.x + " : " + p.y;
updateAfterEvent(mouseMove);
}
--------------------------------------------------------------------------------
DOWNLOAD DO .FLA
Faça o download do arquivo : aqui
Grande abraço,
[ ]´s
Ken Awamura
--------------------------
Ken Awamura tem graduação em Bacharelado em Informática e iniciou sua carreira na área de análise de sistemas porém em 1998 decidiu se especializar em Desenvolvimento para a Web, especialmente com o uso do software Macromedia Flash que começou a usar na sua versão 3. Atualmente dedica-se mais na área de programação com actionScript e na integração do Flash com soluções externas tanto client como server side.
Outros artigos postados por este autor
- Otimizando conexões entre PHP e MySQL
- Fazendo uma enquete simples com arquivos texto
- Como Criar um Mural de Recados em PHP
- Cloud computing para todos
- Quer melhorar a posição de seu site nos motores de busca? Chame o linkbuilder
- Como ter um site amigável para os buscadores
Artigos relacionados sobre Flash
- Classe MovieClipLoader( ) : Como usá-lo ?
- Pixel fonts embaçadas no Flash e no Photoshop
- Action Script 2.0 ( Primeira Parte )
- Efeito Máscara no FLASH
- Funções : localToglobal() e globalToLocal()
- Integração Flash X ColdFusion
Parceiros
BR-Linux.org
Criar WEB
Regularização de Imoveis SP
Montagens de Sites
Templates de Sites
Desenvolvedor de Sites
Elaboração de Sites
Produção de Sites
Programador de Sites
Criadores de Sites
Artigos mais acessados
Desenho de Letras - Construindo fontes TTF
Criando um sistema de login
Enviando email em formato HTML em PHP
Menu Circular em 3D
Cargos e salários na área de informática
Como fazer e modificar calendários
Action Script 2.0 ( Primeira Parte )
10 dicas de Webdesign para salvar seu site
Fireworks VS Photoshop
Serviços
Desenvolvimento de Sites e Sistemas WEB
Otimização de Sites (SEO)
Loja Virtual com Sistema Pagseguro
Sistema de Compra Coletiva
Catálogo de Produtos
Parcerias e Soluções de Publicidade
Portifólio Grupo SOS Designers
Fale Conosco







