AS3, limiter un tween?

omnipotato Messages postés 19 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 1 novembre 2009 - 18 août 2009 à 14:37
omnipotato Messages postés 19 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 1 novembre 2009 - 20 août 2009 à 09:48
voilà, je voudrais savoir 2 choses:

je voudrai qu'un child se déplace avec un tween, mais d'un point A à B uniquement, apres il disparait (et game over!). ou bien si il est plus pratique d'utiliser autre-chose qu'un tween ( une goute d'eau qui tombe au fond d'un bocal, je compte rajouter un tween gauche/droite pour le décaler legerement selon la volonté du joueur)

2eme question, un inventaire en une bande, que l'on déplace en cliquant sur des fleches gauche/droite (pour parcourir les objets), et je voudrai mettre un maximum de chaque coté, enfin bref, une zone de déplacement du tween?

merci d'avance

8 réponses

nickydaquick Messages postés 416 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 19 décembre 2013 3
18 août 2009 à 15:43
Salut,

tu as le choix :
TWEEN (adobe help + rajout de listeners)

import fl.transitions.Tween;
import fl.transitions.TweenEvent;
import fl.transitions.easing.*;

var myTween:Tween =  new Tween(myObject, "x", Elastic.easeOut, 0, 300, 3, true);
myTween.addEventListener(TweenEvent.MOTION_FINISH,__fireTweenEnded,false,0,true);

function __fireTweenEnded(event:TweenEvent):void
{
      //ici tu peux faire disparaitre tes objets
}


TIMER : Ecoute de l'evenement ENTER_FRAME (la frequence depend des parametres de publications en fps)

//exemple pour un document de 30 fps(frame per second)
/**** initialisation des parametres de l'object ****/

/******* fin ***********************/

const TIMER_DELAY:int  = 6;
var t:int = TIMER_DELAY;//le mettre a 0 pour un effet immediat

addEventListener(Event.ENTER_FRAME,__onEnterFrame,false,0,true);

function __onEnterFrame(event:Event):void
{
     if(--t>=0)return;
     t = TIMER_DELAY;
     //ici l'incrementation ou la decrementation de parametres comme le positionnement des objects.
}


Bonne continuation
http://liveplayaz.com
je suis heureux de faire partie d'une grande famille ...!
0
omnipotato Messages postés 19 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 1 novembre 2009
18 août 2009 à 16:31
merci! je test ça!
0
omnipotato Messages postés 19 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 1 novembre 2009
18 août 2009 à 16:45
juste pour voir pour la question 2 si j'arrive à mixer les 2 techniques...
parce que j'aimerait bien le faire avec des tweens quand meme

j'avais déja utilisé un enterFrame pour un autre projet, pour avoir une frise qui tournait à l'infini en fonction de la position X de la souris.

alors là, j'ai essayé de l'adapter à 2 boutons qui se chargent du défillement gauche et droite, et le tout avec des tweens.

au moment de compiler, je n'ai pas d'erreur, mais mes "bandes" ne se téléportent pas à l'opposé, comme elles le fesaient avec l'enterFrame.

import fl.transitions.Tween;
import fl.transitions.easing.*;

var montween:Tween;

bande2.x=bande.x+330;


bt1.addEventListener(MouseEvent.MOUSE_DOWN,traveling);
function traveling(e:MouseEvent){


montween=new Tween(bande,"x",Strong.easeOut,bande.x,bande.x+50,1,true);
montween=new Tween(bande2,"x",Strong.easeOut,bande2.x,bande2.x+50,1,true);

//voici la partie qui fait que la bande retourne à l'autre bout normalement...
if(bande.x<-145){
bande.x=515;
}
//----------------
}


bt2.addEventListener(MouseEvent.MOUSE_DOWN,traveling2);
function traveling2(e:MouseEvent){

montween=new Tween(bande,"x",Strong.easeOut,bande.x,bande.x-50,1,true);
montween=new Tween(bande2,"x",Strong.easeOut,bande2.x,bande2.x-50,1,true);

if(bande.x>515){
bande.x=-145;
   }

}



une idée?
0
omnipotato Messages postés 19 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 1 novembre 2009
18 août 2009 à 17:00
et pour la version bloquée, ça, ça devrait marcher non?

import fl.transitions.Tween;
import fl.transitions.easing.*;

var montween:Tween;


bt1.addEventListener(MouseEvent.MOUSE_DOWN,traveling);
function traveling(e:MouseEvent){

montween=new Tween(bande,"x",Strong.easeOut,bande.x,bande.x+50,1,true);

if(bande.x<185) bande.x=185;

}

bt2.addEventListener(MouseEvent.MOUSE_DOWN,traveling2);
function traveling2(e:MouseEvent){

montween=new Tween(bande,"x",Strong.easeOut,bande.x,bande.x-50,1,true);

if(bande.x>50)bande.x=50;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nickydaquick Messages postés 416 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 19 décembre 2013 3
18 août 2009 à 18:36
Salut,

un tres GROS conseil: utilise une variable (pas locale a une fonction) par tween, sinon tu risques d'avoir de grosses surprises;

Affectes tes proprietes avant de declarer tes tweens;
N'utilises pas de valeur dependante de la valeur de depart des objets pour les tweens; par exemple :
montween=new Tween(bande,"x",Strong.easeOut,bande.x,bande.x-50,1,true);
montween=new Tween(bande,"x",Strong.easeOut,bande.x,0,1,true);

N'oublie pas l'ecouteur d'evenement de fin de transition Tween.

Bonne continuation.

http://liveplayaz.com
je suis heureux de faire partie d'une grande famille ...!
0
omnipotato Messages postés 19 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 1 novembre 2009
18 août 2009 à 21:21
N'oublie pas l'ecouteur d'evenement de fin de transition Tween.


euuuuh... tu peut donner un exempe?
j'ai pas encore vu ça....
0
omnipotato Messages postés 19 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 1 novembre 2009
18 août 2009 à 21:22
j'ai rien dit, c bon j'ai vu! ;)
myTween.addEventListener(TweenEvent.MOTION_FINISH,__fireTweenEnded,false,0,true); 


merci pour tout! /code
0
omnipotato Messages postés 19 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 1 novembre 2009
20 août 2009 à 09:48
euh.... help svp... je ne comprends pas comment utiliser l'écouteur de fin de tween....
0
Rejoignez-nous