Clips aléatoire en continu

Résolu
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011 - 19 avril 2007 à 07:34
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011 - 22 avril 2007 à 22:15
Bonjour,

J'ai une 30aine de clips dans la biblioteque. Je souhaiterai les faire apparaitre sur la scene principal aléatoirement (n'importe quel clip) et avec une position _x et _y aléatoire, tout cela en continu. C'est pour imiter l'apparition des popup.

Comment faire ?

Merci.

14 réponses

cs_embalmer Messages postés 120 Date d'inscription mercredi 14 décembre 2005 Statut Membre Dernière intervention 10 décembre 2007
19 avril 2007 à 14:20
Hello,

voilà comment tu peux faire pour créer et placer tes clip de manière aléatoire :

Avant tout les points d'alignement des tes clips doivent être dans le coin supérieur gauche.
Ensuite tu leur donne un id de liaison (dans ta bibliothèque tu clic doit sur ton clip > liaison > exporter pour ActionScript puis dans liaison tu saisi "image1" pour ton premier clip, "image2" pour ton deuxième, etc jusqu'à 30 dans ton cas).

Ensuite à la racine de ton anim tu place le script suivant :

for(i=1;i<=30;i++){
    _level0.createEmptyMovieClip("randomClip"+i, i*100);
    nomClip = "image"+i;
    _level0["randomClip"+i].attachMovie(nomClip, "img"+i, i) ;
    ymax = Stage.height - _level0["randomClip"+i]._height;
    min = 0;
    xmax = Stage.width -  _level0["randomClip"+i]._width;
    var yRandomNum:Number = Math.floor(Math.random() * (ymax - min + 1)) + min;
    var xRandomNum:Number = Math.floor(Math.random() * (xmax - min + 1)) + min;
    _level0["randomClip"+i]._x = xRandomNum;
    _level0["randomClip"+i]._y = yRandomNum;
}

voilà tes clip s'affiche alléatoirement sans sortir de ta scène. et puis si tu veut contrôler la vitesse d'apparition tu place un setInterval().

voilà .

++
3
cs_embalmer Messages postés 120 Date d'inscription mercredi 14 décembre 2005 Statut Membre Dernière intervention 10 décembre 2007
19 avril 2007 à 19:11
Mais où est le plaisir de galérer à coder si tu ne cherche pas ???[javascript:Insert_Emoticon('/imgs2/smile_big.gif'); ]  !  allez je suis dans un bon jour... [javascript:Insert_Emoticon('/imgs2/smile_wink.gif'); ]

var intervalId:Number;
var count:Number = 0;
var maxCount:Number = 50;
var duration:Number = 500;
function placementClips(){
    _level0.createEmptyMovieClip("randomClip"+count, _level0.getNextHighestDepth());
    _level0["randomClip"+count].attachMovie("image", "img"+count, count) ;
    ymax = Stage.height - _level0["randomClip"+count]._height;
    min = 0;
    xmax = Stage.width -  _level0["randomClip"+count]._width;
    var yRandomNum:Number = Math.floor(Math.random() * (ymax - min + 1)) + min;
    var xRandomNum:Number = Math.floor(Math.random() * (xmax - min + 1)) + min;
    _level0["randomClip"+count]._x = xRandomNum;
    _level0["randomClip"+count]._y = yRandomNum;
    count++;
     if(count >= maxCount) {
         clearInterval(intervalId);
         }
}
intervalId = setInterval(this, "placementClips", duration);

Voilà, je t'ai quand même mis une limite d'apparition (personnellement je trouve qu'il faut toujours une fin à un code), mais si tu veux vraiment que ça continu "indéfiniement, tu vire la variable maxcount et le  :
if(count >= maxCount) {clearInterval(intervalId);  }

la variable duration contrôle la fréquence d'execution de ta fonction en millisecondes.

A enfin, je présume qu'en fait tu veux toujours faire apparaitre le même clip (et non pas 30 clips différents), du coup j'ai remplacé la variable locale nomClip par l'id de liaison "image".
 
3
cs_embalmer Messages postés 120 Date d'inscription mercredi 14 décembre 2005 Statut Membre Dernière intervention 10 décembre 2007
19 avril 2007 à 20:00
oki, autant pour moi, je viens de relire ton premier post, j'avais complètement zappé la selection des clips aléatoire (j'avais fais attention qu'à l'emplacement aléatoire).
Bon voilà c'est corrigé, ça devrait être bon...
[javascript:Insert_Emoticon('/imgs2/smile.gif'); ]

var intervalId:Number;
var count:Number = 0;
var maxCount:Number = 50;
var duration:Number = 500;
var nomClip:String;

function placementClips(){
    _level0.nomClip = "image"+(Math.floor(Math.random() * 30) + 1);
    _level0.createEmptyMovieClip("randomClip"+count, _level0.getNextHighestDepth());
    _level0["randomClip"+count].attachMovie(nomClip, "img"+count, count) ;
    ymax = Stage.height - _level0["randomClip"+count]._height;
    min = 0;
    xmax = Stage.width -  _level0["randomClip"+count]._width;
    var yRandomNum:Number = Math.floor(Math.random() * (ymax - min + 1)) + min;
    var xRandomNum:Number = Math.floor(Math.random() * (xmax - min + 1)) + min;
    _level0["randomClip"+count]._x = xRandomNum;
    _level0["randomClip"+count]._y = yRandomNum;
    count++;
     if(count >= maxCount) {
         clearInterval(intervalId);
         }
}
intervalId = setInterval(this, "placementClips", duration);

++
3
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
19 avril 2007 à 14:28
Ok je teste ça ce soir. Merci beaucoup.
Par contre, qu'entend tu par :

"Avant tout les points d'alignement des tes clips doivent être dans le coin supérieur gauche."

C'est à dire le rond blanc qui ce trouve sur les images ?

+
0

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

Posez votre question
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
19 avril 2007 à 14:29
ou je dois tous les placer sur la scene et les mettre tous dans le coin supérieur gauche ?
0
cs_embalmer Messages postés 120 Date d'inscription mercredi 14 décembre 2005 Statut Membre Dernière intervention 10 décembre 2007
19 avril 2007 à 14:36
ça veut dire que tu ouvre tes clips et que la petit croix indiquant le centre doit être en haut à gauche de ton grahisme.
et, non, il ne faut pas les placer sur la scène, c'est le but de l'id de laison et de l'attachMovie
[Javascript:Insert_Emoticon('/imgs2/smile_wink.gif'); ]
 
++
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
19 avril 2007 à 14:39
Merci.
Je te tiens au courant ce soir ^^
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
19 avril 2007 à 16:55
Le code marche très bien merci. Mais je souhaiterai qu'a la fin des 30 clip affiché aléatoirement, le code continu d'en réaffiché à l'infini ? alors que celui la stop a la fin des 30 clips. De plus, peux-tu m'éclairer sur comment utiliser le setInterval() ?

Merci
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
19 avril 2007 à 19:18
Merci pour tout. non non je veu faire apparaitre les 30 clips :) alors laisse "nomClip" à la place de "image" ^^
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
19 avril 2007 à 20:14
OK merci. sinon je nomme mes liaisons de clip toujours "image1", "image2", ... ?

++
0
cs_embalmer Messages postés 120 Date d'inscription mercredi 14 décembre 2005 Statut Membre Dernière intervention 10 décembre 2007
19 avril 2007 à 20:21
vi jusqu'à 30...[javascript:Insert_Emoticon('/imgs2/smile_big.gif'); ] héhéhé

++
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
19 avril 2007 à 20:23
MERCI Beaucoup !!! ^^

A+

PS: faut que j'arrive d'abord à comprendre comment fonctionne les codes, enfin les différente parties et que signifie chaque mot avant de coder moi-même ^^
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
19 avril 2007 à 23:56
Une dernière ptite chose que je vien de voir... ^^

Comment faire pour laisser affiché les clip pendant environ 15 secondes puis il disparaissent tout seul. C'est pour alléger l'anime vu que les clip apparaissent les un apres les autres et les un sur les autre. C'est pour supprimer automatiquement ceux qui sont tout derrière... ???

Merci^^
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
22 avril 2007 à 22:15
Re mister ! :p

Bon j'ai un soucis...
J'ai un bouton qui va lire l'image suivante. Malheureusement le code que tu m'a filé continu de se jouer.... malgré le fait qu'aucun code n'est présent dans l'image !!! J'ai essayer le randomClip.removeMovieClip(); mais marche pas.... !
Comment faire ?

Cdlt ^^
0
Rejoignez-nous