Jump to content
Flash Gordon

AS3 - Main Class e movie clips

Recommended Posts

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

Share this post


Link to post
Share on other 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);
 }
}
}

Edited by clera

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites
PTutor

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

MovieClip(getChildByName(evt.target.name))

por

MovieClip(evt.target)

Edited by PTutor

A autoridade em Flex/Actionscript

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.