begin process at 2012 05 26 15:57:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

as3 problème de mouvement aleatoire de clip avec tween : ça bloque !


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

as3 problème de mouvement aleatoire de clip avec tween : ça bloque !

dimanche 22 novembre 2009 à 21:44:30 | as3 problème de mouvement aleatoire de clip avec tween : ça bloque !

schanthery



Bonjour
Je tente de faire des bulles qui bougent toutes seules mais au bout d'un certain temps mes bulles s'arrêtent de bouger sauf une !!! Je ne vois pas pourquoi. Pourriez vous m'aider?
Merci
voici mon code

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
var nombre_de_bulles:uint=50;
var i:uint;
var speed:Number=120; // la diagonale devra etre parcouru en 120 images (5s)
var xmin,ymin,xmax,ymax:uint;
var diagonale:Number;
// les infos de la scène
xmin=0;
ymin=0;
xmax=stage.stageWidth;
ymax=stage.stageHeight;
//trace(xmin+" "+xmax+" "+ymin+" "+ymax);
// cacul de la diagonale
diagonale=Math.sqrt(Math.pow((xmax-xmin),2)+Math.pow((ymax-ymin),2));
//trace("diagonale="+diagonale);

// creation des bulles
for (i=0; i<nombre_de_bulles; i++) {
var new_bulle:bulle=new bulle();
new_bulle.x=stage.stageWidth/2;
new_bulle.y=stage.stageHeight/2;
addChild(new_bulle);
deplace(new_bulle);
}

function deplace(bulle:MovieClip) {
var distance:Number;
var xdest,ydest:uint;
var durée:Number;
// déterminstaion point de destination
xdest=Math.floor(Math.random()*(xmax-xmin))+xmin;
ydest=Math.floor(Math.random()*(ymax-ymin))+ymin;
//var total:Number=Math.pow((xdest-this.x),2)+Math.pow((ydest-this.y),2);
//trace("xdest="+xdest+" ydest="+ydest+" total="+total);
// caciul distance à parcourir
distance=Math.sqrt(Math.pow((xdest-bulle.x),2)+Math.pow((ydest-bulle.y),2));
//trace("distance à parcourir="+distance);
// calcul durée du parcours en images
durée=distance/diagonale*speed;
//trace("durée="+durée);
var myTweenx:Tween=new Tween(bulle,"x",None.easeIn,bulle.x,xdest,durée,false);
var myTweeny:Tween=new Tween(bulle,"y",None.easeIn,bulle.y,ydest,durée,false);
myTweenx.addEventListener(TweenEvent.MOTION_FINISH,myTweenx_motion_finish);
}

function myTweenx_motion_finish(evt:TweenEvent) {
//evt.currentTarget.removeEventListener(TweenEvent.MOTION_FINISH,myTweenx_motion_finish);
deplace(evt.currentTarget.obj);
}




Merci
seb
lundi 23 novembre 2009 à 18:48:51 | Re : as3 problème de mouvement aleatoire de clip avec tween : ça bloque !

schanthery


C'est mieux présenté comme cela ma question:

Bonjour
Je tente de faire des bulles qui bougent toutes seules mais au bout d'un certain temps mes bulles s'arrêtent de bouger sauf une !!! Je ne vois pas pourquoi. Pourriez vous m'aider?
Merci
voici mon code

Code ActionScript :
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
var nombre_de_bulles:uint=50;
var i:uint;
var speed:Number=120; // la diagonale devra etre parcouru en 120 images (5s)
var xmin,ymin,xmax,ymax:uint;
var diagonale:Number;
// les infos de la scène
xmin=0;
ymin=0;
xmax=stage.stageWidth;
ymax=stage.stageHeight;
//trace(xmin+" "+xmax+" "+ymin+" "+ymax);
// cacul de la diagonale
diagonale=Math.sqrt(Math.pow((xmax-xmin),2)+Math.pow((ymax-ymin),2));
//trace("diagonale="+diagonale);

// creation des bulles
for (i=0; i<nombre_de_bulles; i++) {
var new_bulle:bulle=new bulle();
new_bulle.x=stage.stageWidth/2;
new_bulle.y=stage.stageHeight/2;
addChild(new_bulle);
deplace(new_bulle);
}

function deplace(bulle:MovieClip) {
var distance:Number;
var xdest,ydest:uint;
var durée:Number;
// déterminstaion point de destination
xdest=Math.floor(Math.random()*(xmax-xmin))+xmin;
ydest=Math.floor(Math.random()*(ymax-ymin))+ymin;
//var total:Number=Math.pow((xdest-this.x),2)+Math.pow((ydest-this.y),2);
//trace("xdest="+xdest+" ydest="+ydest+" total="+total);
// caciul distance à parcourir
distance=Math.sqrt(Math.pow((xdest-bulle.x),2)+Math.pow((ydest-bulle.y),2));
//trace("distance à parcourir="+distance);
// calcul durée du parcours en images
durée=distance/diagonale*speed;
//trace("durée="+durée);
var myTweenx:Tween=new Tween(bulle,"x",None.easeIn,bulle.x,xdest,durée,false);
var myTweeny:Tween=new Tween(bulle,"y",None.easeIn,bulle.y,ydest,durée,false);
myTweenx.addEventListener(TweenEvent.MOTION_FINISH,myTweenx_motion_finish);
}

function myTweenx_motion_finish(evt:TweenEvent) {
//evt.currentTarget.removeEventListener(TweenEvent.MOTION_FINISH,myTweenx_motion_finish);
deplace(evt.currentTarget.obj);
}




Merci
seb


seb
lundi 23 novembre 2009 à 19:12:53 | Re : as3 problème de mouvement aleatoire de clip avec tween : ça bloque !

schanthery


J'ai trouvé la solution comme un grand
Il s'agit d'un bug connu qui efface les tweens de la mémoire quand il y en a trop
Il suffit de stocker chaque tween dans un tableau
Ce qui donne
Code ActionScript :
var myTweenx:Tween=new Tween(bulle,"x",None.easeIn,bulle.x,xdest,durée,false);
var myTweeny:Tween=new Tween(bulle,"y",None.easeIn,bulle.y,ydest,durée,false);
tableau_tweenx.push(myTweenx); // mise en tableau pour forcer à conserver en mémoire cf bug connu tween
tableau_tweeny.push(myTweeny);



seb


Cette discussion est classée dans : var, tween, math, bulle, diagonale


Répondre à ce message

Sujets en rapport avec ce message

API Cercle [ par on_drag_on ] voilà je veux dessiner un cercle: MovieClip.prototype.drawCirle=function(rayon,x,y) { //Je crée la méthode     var monangle=Math.PI/4; //il s'agit d amelioration d'un super composant [ par zayn ] Bonjour, je cherche a ameliorer le composant suivant: menu qui reprend l'effet du dock de mac os x (zoom sur une icone quand la souris s'approche). Da rien ne s'affiche [ par aze555666 ] voila mon pb: je cherche à faire une simulation, avec 400 points, dont je change tout le temps les coordonnées. mais quand je fais tester l'animation, repositionné movieclip [ par nicodogs ] Bonjour à tous,Il y a quelques jours Girou m'avais donné un bon coup de main pour mon animation style "caroussel", l'anim marche très bien. Mais j'ai Faire apparaitre des texte aléatoirement [ par VooDooS ] Il s'agit vraiment d'un truc basique, mais que je ne parvient pas à réaliser, et ce même avec maintes recherches googliennes... Je veux faire apparai removeChild dans une boucle... [ par nuclearprout ] Bonsoir. J'ai le code suivant : package {    import flash.display.*;    import flash.events.Event;    public class atomic extends MovieClip { reorganisation automatique de clip [ par fanatikx ] Bonjour,voila je travail en ce moment sur la création d'un site internet qui contient plusieurs images/vignette (30px par 30). Ces images peuvent être Zoom sur clic avec centrage auto [ par aZents ] Bonjour à tous, depuis quelque temps j'essaie de trouver solution à mon problème mais bon mon niveau est comment dirais-je....(en dessous de débutant Utilisation des boucles ? [ par fanatikx ] Bonjour, Voila, j'ai un petit soucis au niveau des boucles. Disons que j'ai 2 clip sur ma scène qui contiennent chacuns une image. Je veux que lorsque mon script de confettis m'en fait voir de toute les couleurs [ par jerrrrrry ] bonjour je cherche à faire un script de confettis en actionscriptles confettis ont une position aléatoire, une couleur aleatoire parmi 4 possibilités,


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,092 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales