Problème tween sous AS3

biguiz Messages postés 198 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 6 novembre 2009 - 23 juil. 2008 à 16:19
biguiz Messages postés 198 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 6 novembre 2009 - 8 août 2008 à 10:20
Bonjour à tous et à toutes,
Je cherche des solutions sur le web depuis un moment déjà mais sans réponses. Voici mon problème : je crée un cdrom dans le cadre de mes études. Je possède une animation d'intro, mais parfois (ce n'est pas systématique), les tween ne se finissent pas (par exemple un carré passant de 0px de largeur à 100px va se bloquer à 80px). On m'a dit que cela pouvait venir du fait que je déclare des variables globales au sein de mes fonctions. Comment alors déclarer mes fonctions en dehors des fonctions ?
Un autre de mes problèmes vient du fait que je possède des boutons texte, et j'y applique des effets tween d'agrandissement en MOUSE_OVER, et de retour à la taille initiale en MOUSE_OUT. Certains boutons marchent sans problème, mais d'autres beuguent et sautent lorsque la souris est dessus (le texte commence à s'agrandir mais avant qu'il n'arrive à la taille voulue, il revient à sa taille initiale et rebelotte etc ; la main du curseur passant de main à fleche à main à fleche etc).


Voici mon code et merci d'avance pour votre aide :


Pour l'animation avec un recangle qui s'aggrandit par exemple :

import fl.transitions.*;
import fl.transitions.easing.*;
import flash.filters.*;

bordhaut.scaleX=0
bordhaut.scaleY=0
bordbas.scaleX=0
bordbas.scaleY=0


//ouverture et agrandissement des x invisible du haut et du bas
var ha2:Tween = new Tween(haut2,"y", Regular.easeInOut,0, -384, 3, true);
var ba2:Tween = new Tween(bas2,"y", Regular.easeInOut,384, 768, 3, true);
var hy:Tween = new Tween(bordhaut,"scaleY", Regular.easeInOut,0, 1, 1, true);
var by:Tween = new Tween(bordbas,"scaleY", Regular.easeInOut,0, 1, 1, true);
ba2.addEventListener(TweenEvent.MOTION_FINISH,continuani)

//apparition du haut et du bas, roulade du logo
function continuani(evt:TweenEvent){
var hx:Tween = new Tween(bordhaut,"scaleX", Regular.easeInOut,0, 1, 3, true);
var bx:Tween = new Tween(bordbas,"scaleX", Regular.easeInOut,0, 1, 3, true);
TransitionManager.start(logo, {type:Rotate, direction:Transition.IN, duration:3.5, easing:Strong.easeInOut, ccw:false, degrees:360});
var log:Tween = new Tween(logo,"x", Regular.easeInOut,-210, 512, 3, true);
log.addEventListener(TweenEvent.MOTION_FINISH,continuani2)
}
...



Voici pour un de mes boutons :

//menu dynamique
historique.addEventListener(MouseEvent.MOUSE_OVER, bouge1)
function bouge1 (event:MouseEvent):void{
var bouge11:Tween = new Tween(historique,"scaleX", Bounce.easeOut,1, 1.3, 1, true);
var bouge12:Tween = new Tween(historique,"scaleY", Bounce.easeOut,1, 1.3, 1, true);
}
historique.addEventListener(MouseEvent.MOUSE_OUT, rebouge1)
function rebouge1 (event:MouseEvent):void{
var rebouge11:Tween = new Tween(historique,"scaleX", Bounce.easeOut,1.3, 1, 1, true);
var rebouge12:Tween = new Tween(historique,"scaleY", Bounce.easeOut,1.3, 1, 1, true);
}
...

7 réponses

Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
24 juil. 2008 à 11:57
merci de poster avec du texte clair en paragraphe car la j'ai pas envie de lire
0
biguiz Messages postés 198 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 6 novembre 2009
24 juil. 2008 à 12:16
Oups excusez moi, j'avais fait un copier coller de mon message mais j'ai pas vu qua ça m'a bouffé tous les sauts de ligne ^^


Donc, je cherche des solutions sur le web depuis un moment déjà mais sans réponses. Voici mon problème : je crée un cdrom dans le cadre de mes études. Je possède une animation d'intro, mais parfois (ce n'est pas systématique), les tween ne se finissent pas (par exemple un carré passant de 0px de largeur à 100px va se bloquer à 80px). On m'a dit que cela pouvait venir du fait que je déclare des variables globales au sein de mes fonctions. Comment alors déclarer mes fonctions en dehors des fonctions ? Un autre de mes problèmes vient du fait que je possède des boutons texte, et j'y applique des effets tween d'agrandissement en MOUSE_OVER, et de retour à la taille initiale en MOUSE_OUT. Certains boutons marchent sans problème, mais d'autres beuguent et sautent lorsque la souris est dessus (le texte commence à s'agrandir mais avant qu'il n'arrive à la taille voulue, il revient à sa taille initiale et rebelotte etc ; la main du curseur passant de main à fleche à main à fleche etc).

Voici mon code et merci d'avance pour votre aide :

Pour l'animation avec un recangle qui s'aggrandit par exemple :

import fl.transitions.*;
import fl.transitions.easing.*;
import flash.filters.*;

bordhaut.scaleX=0
bordhaut.scaleY=0
bordbas.scaleX=0
bordbas.scaleY=0

//ouverture et agrandissement des x invisible du haut et du bas
var ha2:Tween = new Tween(haut2,"y", Regular.easeInOut,0, -384, 3, true);
var ba2:Tween = new Tween(bas2,"y", Regular.easeInOut,384, 768, 3, true);
var hy:Tween = new Tween(bordhaut,"scaleY", Regular.easeInOut,0, 1, 1, true);
var by:Tween = new Tween(bordbas,"scaleY", Regular.easeInOut,0, 1, 1, true);
ba2.addEventListener(TweenEvent.MOTION_FINISH,continuani)

//apparition du haut et du bas, roulade du logo
function continuani(evt:TweenEvent){
var hx:Tween = new Tween(bordhaut,"scaleX", Regular.easeInOut,0, 1, 3, true);
var bx:Tween = new Tween(bordbas,"scaleX", Regular.easeInOut,0, 1, 3, true);
TransitionManager.start(logo, {type:Rotate, direction:Transition.IN, duration:3.5, easing:Strong.easeInOut, ccw:false, degrees:360});
var log:Tween = new Tween(logo,"x", Regular.easeInOut,-210, 512, 3, true);
log.addEventListener(TweenEvent.MOTION_FINISH,continuani2)
}
...


Voici pour un de mes boutons :

//menu dynamique
historique.addEventListener(MouseEvent.MOUSE_OVER, bouge1)
function bouge1 (event:MouseEvent):void{
var bouge11:Tween = new Tween(historique,"scaleX", Bounce.easeOut,1, 1.3, 1, true);
var bouge12:Tween = new Tween(historique,"scaleY", Bounce.easeOut,1, 1.3, 1, true);
}
historique.addEventListener(MouseEvent.MOUSE_OUT, rebouge1)
function rebouge1 (event:MouseEvent):void{
var rebouge11:Tween = new Tween(historique,"scaleX", Bounce.easeOut,1.3, 1, 1, true);
var rebouge12:Tween = new Tween(historique,"scaleY", Bounce.easeOut,1.3, 1, 1, true);
}
...
0
biguiz Messages postés 198 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 6 novembre 2009
24 juil. 2008 à 12:19
Décidément quand ça veut pas ça veut pas...
Mon message qui est trop long ou quoi ?
Donc je v faire en différentes parties :

Je cherche des solutions sur le web depuis un moment déjà mais sans réponses. Voici mon problème : je crée un cdrom dans le cadre de mes études. Je possède une animation d'intro, mais parfois (ce n'est pas systématique), les tween ne se finissent pas (par exemple un carré passant de 0px de largeur à 100px va se bloquer à 80px). On m'a dit que cela pouvait venir du fait que je déclare des variables globales au sein de mes fonctions. Comment alors déclarer mes fonctions en dehors des fonctions ? Un autre de mes problèmes vient du fait que je possède des boutons texte, et j'y applique des effets tween d'agrandissement en MOUSE_OVER, et de retour à la taille initiale en MOUSE_OUT. Certains boutons marchent sans problème, mais d'autres beuguent et sautent lorsque la souris est dessus (le texte commence à s'agrandir mais avant qu'il n'arrive à la taille voulue, il revient à sa taille initiale et rebelotte etc ; la main du curseur passant de main à fleche à main à fleche etc).
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
24 juil. 2008 à 12:22
-1
0

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

Posez votre question
biguiz Messages postés 198 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 6 novembre 2009
24 juil. 2008 à 12:22
Voici mon code et merci d'avance pour votre aide :

Pour l'animation avec un recangle qui s'aggrandit par exemple :

import fl.transitions.*;
import fl.transitions.easing.*;
import flash.filters.*;

bordhaut.scaleX=0
bordhaut.scaleY=0
bordbas.scaleX=0
bordbas.scaleY=0

//ouverture et agrandissement des x invisible du haut et du bas
var ha2:Tween = new Tween(haut2,"y", Regular.easeInOut,0, -384, 3, true);
var ba2:Tween = new Tween(bas2,"y", Regular.easeInOut,384, 768, 3, true);
var hy:Tween = new Tween(bordhaut,"scaleY", Regular.easeInOut,0, 1, 1, true);
var by:Tween = new Tween(bordbas,"scaleY", Regular.easeInOut,0, 1, 1, true);
ba2.addEventListener(TweenEvent.MOTION_FINISH,continuani)

//apparition du haut et du bas, roulade du logo
function continuani(evt:TweenEvent){
var hx:Tween = new Tween(bordhaut,"scaleX", Regular.easeInOut,0, 1, 3, true);
var bx:Tween = new Tween(bordbas,"scaleX", Regular.easeInOut,0, 1, 3, true);
TransitionManager.start(logo, {type:Rotate, direction:Transition.IN, duration:3.5, easing:Strong.easeInOut, ccw:false, degrees:360});
var log:Tween = new Tween(logo,"x", Regular.easeInOut,-210, 512, 3, true);
log.addEventListener(TweenEvent.MOTION_FINISH,continuani2)
}
0
biguiz Messages postés 198 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 6 novembre 2009
24 juil. 2008 à 12:24
... Voici pour un de mes boutons :

//menu dynamique
historique.addEventListener(MouseEvent.MOUSE_OVER, bouge1)
function bouge1 (event:MouseEvent):void{
var bouge11:Tween = new Tween(historique,"scaleX", Bounce.easeOut,1, 1.3, 1, true);
var bouge12:Tween = new Tween(historique,"scaleY", Bounce.easeOut,1, 1.3, 1, true);
}
historique.addEventListener(MouseEvent.MOUSE_OUT, rebouge1)
function rebouge1 (event:MouseEvent):void{
var rebouge11:Tween = new Tween(historique,"scaleX", Bounce.easeOut,1.3, 1, 1, true);
var rebouge12:Tween = new Tween(historique,"scaleY", Bounce.easeOut,1.3, 1, 1, true); } ...


Voilà merci pour votre aide.


PS : c'est la zone de saisie de texte avec les smileys qui ne comptabilise pas mes lignes et paragraphes...
0
biguiz Messages postés 198 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 6 novembre 2009
8 août 2008 à 10:20
Juste pour infos j'ai trouvé la solution pour Tween qui se figeaient. C'est un problème avec le Garbage Collector qui supprimait parfois les tweens avant la fin de leur exécution. La solution, c'est de déclarer les tweens en dehors des fonctions, comme ceci :

var hx:Tween;
var bx:Tween;
function continuanim(evt:TweenEvent){
hx = new Tween(bordhaut,"scaleX", Regular.easeInOut,0, 1, 3, true);
bx = new Tween(bordbas,"scaleX", Regular.easeInOut,0, 1, 3, true);
0
Rejoignez-nous