..:: MX Studio Fóruns ::..: Transição entre swf externos - ActionScript 3 - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Transição entre swf externos - ActionScript 3

#1 User is offline   Bruno Alves Alexandre 

  • Group: Membros
  • Posts: 77
  • Joined: 08-October 08

Posted 12 November 2008 - 03:15 PM

Boa tarde, tudo bem?

Gostaria de fazer uma transição entre os swf externos da seguinte forma:
http://www.kirupa.com/developer/mx2004/transitions.htm
Só que o tutorial está em AS2...

Por exemplo: Tenho o botão "1", "2" e "3"
Quando eu clicar no "2" o "1" sai, e depois que o "1" sai completamente entra o "2".

Até agora só estou conseguindo fazer a animação entrar, mas sair não....

Código para animação de entrada:
QUOTE
var myTween2:Tween = new Tween(alvo_mc, "x", Strong.easeOut, 0 - alvo_mc.width, stage.stageWidth/2 - alvo_mc.width/2, 4, true);



Obrigado.
0

#2 User is offline   motondon 

  • Group: Membros
  • Posts: 24
  • Joined: 03-November 08

Posted 12 November 2008 - 06:19 PM

Fala Bruno,

segue um exemplo (em AS3). Criei três instâncias de um MovieClip (alvo1_mc, alvo2_mc e alvo3_mc). Posicionei fora do stage no lado esquerdo e coloquei o seguinte código no primeiro frame. A diferença é que eu coloquei o evento de click no próprio MC, mas poderia ser em um menu como no seu exemplo:

CÓDIGO
import fl.transitions.Tween;
import fl.transitions.easing.*;

new Tween(alvo1_mc, "x", Strong.easeOut, 0 - alvo1_mc.width, stage.stageWidth/2 - alvo1_mc.width/2, 4, true);

alvo1_mc.addEventListener(MouseEvent.CLICK, alvoUmclickHandler);
alvo2_mc.addEventListener(MouseEvent.CLICK, alvoDoisclickHandler);
alvo3_mc.addEventListener(MouseEvent.CLICK, alvoTresclickHandler);

function alvoUmclickHandler(e:MouseEvent):void {
    new Tween(alvo1_mc, "x", Strong.easeOut, stage.stageWidth/2 - alvo1_mc.width/2, stage.stageWidth + alvo1_mc.width, 4, true);
    new Tween(alvo2_mc, "x", Strong.easeOut, 0 - alvo2_mc.width, stage.stageWidth/2 - alvo2_mc.width/2, 4, true);
    
}

function alvoDoisclickHandler(e:MouseEvent):void {
    new Tween(alvo2_mc, "x", Strong.easeOut, stage.stageWidth/2 - alvo2_mc.width/2, stage.stageWidth + alvo2_mc.width, 4, true);
    new Tween(alvo3_mc, "x", Strong.easeOut, 0 - alvo3_mc.width, stage.stageWidth/2 - alvo3_mc.width/2, 4, true);
}

function alvoTresclickHandler(e:MouseEvent):void {
    new Tween(alvo3_mc, "x", Strong.easeOut, stage.stageWidth/2 - alvo3_mc.width/2, stage.stageWidth + alvo3_mc.width, 4, true);
    new Tween(alvo1_mc, "x", Strong.easeOut, 0 - alvo1_mc.width, stage.stageWidth/2 - alvo1_mc.width/2, 4, true);
}


Se quiser posso te mandar o fla.

att

João Motondon
0

#3 User is offline   Bruno Alves Alexandre 

  • Group: Membros
  • Posts: 77
  • Joined: 08-October 08

Posted 13 November 2008 - 09:05 AM

Ok, mas teria como dar um intervalo?
Por exemplo, quando o alvo1_mc saiu completamente entra o alvo2_mc??

Obrigado, abraço
0

#4 User is offline   motondon 

  • Group: Membros
  • Posts: 24
  • Joined: 03-November 08

Posted 13 November 2008 - 06:53 PM

Bruno,

a classe Tween possui alguns eventos que você pode controlar da mesma maneira que controla um evento de tela (ex. MouseEvent, etc).
Um desses eventos avisa quando a animação terminar; ele se chama motionFinish. Dê uma olhada no help para ver as opções.

Segue abaixo uma modificação no código que inclui listeners para o evento motionFinish:

CÓDIGO
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

new Tween(alvo1_mc, "x", Strong.easeOut, 0 - alvo1_mc.width, stage.stageWidth/2 - alvo1_mc.width/2, 4, true);

alvo1_mc.addEventListener(MouseEvent.CLICK, alvoUmclickHandler);
alvo2_mc.addEventListener(MouseEvent.CLICK, alvoDoisclickHandler);
alvo3_mc.addEventListener(MouseEvent.CLICK, alvoTresclickHandler);


function alvoUmclickHandler(e:MouseEvent):void {
    var tween:Tween = new Tween(alvo1_mc, "x", Strong.easeOut, stage.stageWidth/2 - alvo1_mc.width/2, stage.stageWidth + alvo1_mc.width, 4, true);
    tween.addEventListener(TweenEvent.MOTION_FINISH, tween1Finished);
}

function alvoDoisclickHandler(e:MouseEvent):void {
    var tween:Tween = new Tween(alvo2_mc, "x", Strong.easeOut, stage.stageWidth/2 - alvo2_mc.width/2, stage.stageWidth + alvo2_mc.width, 4, true);
    tween.addEventListener(TweenEvent.MOTION_FINISH, tween2Finished);
}

function alvoTresclickHandler(e:MouseEvent):void {
    var tween:Tween = new Tween(alvo3_mc, "x", Strong.easeOut, stage.stageWidth/2 - alvo3_mc.width/2, stage.stageWidth + alvo3_mc.width, 4, true);
    tween.addEventListener(TweenEvent.MOTION_FINISH, tween3Finished);
}

function tween1Finished(e:TweenEvent):void {
    new Tween(alvo2_mc, "x", Strong.easeOut, 0 - alvo2_mc.width, stage.stageWidth/2 - alvo2_mc.width/2, 4, true);
}

function tween2Finished(e:TweenEvent):void {
    new Tween(alvo3_mc, "x", Strong.easeOut, 0 - alvo3_mc.width, stage.stageWidth/2 - alvo3_mc.width/2, 4, true);
}

function tween3Finished(e:TweenEvent):void {
    new Tween(alvo1_mc, "x", Strong.easeOut, 0 - alvo1_mc.width, stage.stageWidth/2 - alvo1_mc.width/2, 4, true);
}


att

João Motondon
0

#5 User is offline   Natan 

  • Group: Moderador Global
  • Posts: 7350
  • Joined: 28-February 04

Posted 13 November 2008 - 11:31 PM

Tem um tutorial aqui no portal sobre a Classe.

http://www.mxstudio.com.br/flash/estudo_de...__classe_tween/

[]s
0

#6 User is offline   Bruno Alves Alexandre 

  • Group: Membros
  • Posts: 77
  • Joined: 08-October 08

Posted 14 November 2008 - 10:42 AM

valew!!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)