Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Flash Gordon

AS3 - Main Class e movie clips

Mensagens Recomendadas

Flash Gordon

Boa tarde ... recentemente tive que fazer um site em flash e deparei-me com uma dúvida que não consigo resolver pois não entendo praticamente NADA de Flash..muito menos de AS3 daí o meu pedido de ajuda e desde já o meu obrigado.

A navegação no site, isto é, o local onde consultamos os conteudos em texto, são na realidade movie clipes com recurso a shape tween que se expandem quando fazemos hover com o rato. O site é bem simples...

Na Class Main tenho o seguinte código base para um movie clip:

package {

import flash.display.MovieClip;

import flash.events.MouseEvent;

public class Main extends MovieClip {

public function Main() {

botao1.addEventListener(MouseEvent.MOUSE_OVER, fnOver);

botao1.addEventListener(MouseEvent.MOUSE_OUT, fnOut);

}

function fnOver (objecto:MouseEvent){

botao1.gotoAndPlay(2);

}

function fnOut (objecto:MouseEvent){

botao1.gotoAndPlay(11);

}

}

}

Na navegação tenho 3 movie clipes com conteudos. O código acima com um movie funciona lindamente mas quando adiciono os outros 2 clipes a este código nada feito...... o que estarei a fazer mal? Terei que criar um ficheiro .as para cada movieclip ?Já googlei e não encontrei nada que me ajudasse! Agradeço desde já toda a atenção e ajuda que me possam prestar

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
clera

boas,

claramente não tens de fazer um .as para cada movieclip, tens é de ter um botao para cada noticia e as respectivas funções ou usar as mesmas funções mas lendo o objecto pelo qual foi chamado.


package
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Main extends MovieClip
{
 public function Main()
 {
  botao1.addEventListener(MouseEvent.MOUSE_OVER, fnOver);
  botao1.addEventListener(MouseEvent.MOUSE_OUT, fnOut);
  botao2.addEventListener(MouseEvent.MOUSE_OVER, fnOver);
  botao2.addEventListener(MouseEvent.MOUSE_OUT, fnOut);
  botao3.addEventListener(MouseEvent.MOUSE_OVER, fnOver);
  botao3.addEventListener(MouseEvent.MOUSE_OUT, fnOut);
 }
 function fnOver(evt:MouseEvent)
 {
  MovieClip(getChildByName(evt.target.name)).gotoAndPlay(2);
 }
 function fnOut(evt:MouseEvent)
 {
  MovieClip(getChildByName(evt.target.name)).gotoAndPlay(11);
 }
}
}

Editado por clera

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Flash Gordon

Brutal! Funciona ás mil maravilhas... Sou mesmo um maçarico em AS e Flash :(

Já tinha tentado (mais ou menos) isso mas não tinha acrescentado estas linhas... MovieClip(getChildByName(evt.target.name)).gotoAndPlay daí não estar a resultar!

Obrigado pelo teu tempo e pela ajuda!

Abr

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
PTutor

Uma das optimizações que se pode fazer neste código é substituir

MovieClip(getChildByName(evt.target.name))

por

MovieClip(evt.target)

Editado por PTutor

A autoridade em Flex/Actionscript

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.