OVH Cloud OVH Cloud

[FLA MX] Random

5 réponses
Avatar
Jin
Bjour tout le monde!
J'ai sur ma scene principale un clip contenant 11 autres clips( d'une durée
de +- 45 frames)
Sur cette scene principale, j'ai aussi un clip cible sur lequel j'y ai
indiqué ce code:

onClipEvent(enterFrame){
var titres=[_root.ensemble.fenetre1, _root.ensemble.fenetre2,
_root.ensemble.fenetre3, _root.ensemble.fenetre4, _root.ensemble.fenetre5,
_root.ensemble.fenetre6, _root.ensemble.fenetre7, _root.ensemble.fenetre8,
_root.ensemble.fenetre9, _root.ensemble.fenetre10,_root.ensemble.fenetre11];
var nombre = 11;
var aleatoire = Function(Math.floor(Math.random()*nombre+1));
titres[aleatoire].play();
}
... tout cela fonctionne très bien mais:
Je voudrais qu'a la fin d'un clip joué il me rejoue un autre clip(en random)
Car ici, le clip n'a pas le temps d'être lancé qu'il en joue déjà un autre
du fait du enterframe.
Quelqu'un aurait-il une idée la-dessus?
Muchos gracias.
El osto poputo Jin!
;o)

5 réponses

Avatar
Jérôme Courivaud
une solution amusante :

à l'image 1 d'un clip tu déclare une variabe ok : this.ok = false;

à la dernière image de ce même clip tu mes cette variable à true : this.ok true;

Sur le scénario principal tu remes ta procédure de cette manière :

var titres=[_root.ensemble.fenetre1, _root.ensemble.fenetre2,
_root.ensemble.fenetre3, _root.ensemble.fenetre4, _root.ensemble.fenetre5,_
root.ensemble.fenetre6, _root.ensemble.fenetre7,
_root.ensemble.fenetre8,_root.ensemble.fenetre9,
_root.ensemble.fenetre10,_root.ensemble.fenetre11];
var nombre = titres.length;
var clipChoice = null;

this.onEnterFrame = function(){
if(clipChoice.ok == false and clipChoice != null){
var aleatoire = Function(Math.floor(Math.random()*nombre+1));
clipChoice = titres[aleatoire];
clipChoice.play();
}
}
un truc dans ce genre, je ne sais pas comment tu as rédigé l'intégralité de
ton code.

voilà


"Jin" a écrit dans le message de
news:bmoi2t$crq$
Bjour tout le monde!
J'ai sur ma scene principale un clip contenant 11 autres clips( d'une


durée
de +- 45 frames)
Sur cette scene principale, j'ai aussi un clip cible sur lequel j'y ai
indiqué ce code:

onClipEvent(enterFrame){
var titres=[_root.ensemble.fenetre1, _root.ensemble.fenetre2,
_root.ensemble.fenetre3, _root.ensemble.fenetre4, _root.ensemble.fenetre5,
_root.ensemble.fenetre6, _root.ensemble.fenetre7,


_root.ensemble.fenetre8,
_root.ensemble.fenetre9,


_root.ensemble.fenetre10,_root.ensemble.fenetre11];
var nombre = 11;
var aleatoire = Function(Math.floor(Math.random()*nombre+1));
titres[aleatoire].play();
}
... tout cela fonctionne très bien mais:
Je voudrais qu'a la fin d'un clip joué il me rejoue un autre clip(en


random)
Car ici, le clip n'a pas le temps d'être lancé qu'il en joue déjà un autre
du fait du enterframe.
Quelqu'un aurait-il une idée la-dessus?
Muchos gracias.
El osto poputo Jin!
;o)





Avatar
estampida
Je ne sais pas non plus comment le reste de ton code mais je pense que tu
peux virer ta variable titre et simplement remplacer
titres[aleatoire]
par
this["_root.ensemble.fenetre"+aleatoire];
si tu as réelement besoin de ta variable titre, alors utilise plutôt un
tableau:
monTableau=new Array ();
for (i=1; i<=nombre; i++){
monTableau[i]="_root.ensemble.fenetre" add i;
}

"Jérôme Courivaud" wrote in message
news:bmoj2p$eec$
une solution amusante :

à l'image 1 d'un clip tu déclare une variabe ok : this.ok = false;

à la dernière image de ce même clip tu mes cette variable à true : this.ok


> true;

Sur le scénario principal tu remes ta procédure de cette manière :

var titres=[_root.ensemble.fenetre1, _root.ensemble.fenetre2,
_root.ensemble.fenetre3, _root.ensemble.fenetre4,


_root.ensemble.fenetre5,_
root.ensemble.fenetre6, _root.ensemble.fenetre7,
_root.ensemble.fenetre8,_root.ensemble.fenetre9,
_root.ensemble.fenetre10,_root.ensemble.fenetre11];
var nombre = titres.length;
var clipChoice = null;

this.onEnterFrame = function(){
if(clipChoice.ok == false and clipChoice != null){
var aleatoire = Function(Math.floor(Math.random()*nombre+1));
clipChoice = titres[aleatoire];
clipChoice.play();
}
}
un truc dans ce genre, je ne sais pas comment tu as rédigé l'intégralité


de
ton code.

voilà


"Jin" a écrit dans le message de
news:bmoi2t$crq$
> Bjour tout le monde!
> J'ai sur ma scene principale un clip contenant 11 autres clips( d'une
durée
> de +- 45 frames)
> Sur cette scene principale, j'ai aussi un clip cible sur lequel j'y ai
> indiqué ce code:
>
> onClipEvent(enterFrame){
> var titres=[_root.ensemble.fenetre1, _root.ensemble.fenetre2,
> _root.ensemble.fenetre3, _root.ensemble.fenetre4,


_root.ensemble.fenetre5,
> _root.ensemble.fenetre6, _root.ensemble.fenetre7,
_root.ensemble.fenetre8,
> _root.ensemble.fenetre9,
_root.ensemble.fenetre10,_root.ensemble.fenetre11];
> var nombre = 11;
> var aleatoire = Function(Math.floor(Math.random()*nombre+1));
> titres[aleatoire].play();
> }
> ... tout cela fonctionne très bien mais:
> Je voudrais qu'a la fin d'un clip joué il me rejoue un autre clip(en
random)
> Car ici, le clip n'a pas le temps d'être lancé qu'il en joue déjà un


autre
> du fait du enterframe.
> Quelqu'un aurait-il une idée la-dessus?
> Muchos gracias.
> El osto poputo Jin!
> ;o)
>
>
>




Avatar
\(-: tatactic :-\)
"Jin" wrote in message
news:bmos5u$113$
Le seul code que j'ai mis c'est sur un clip cible(placé sur ma scene
principale) ou j'y ai noté ceci:



[...]

et sans rien mettre comme action sur tes clips et en faisant un truc du
genre :

var titres:Array=new Array()
var cnt:Number=1
while(cnt<){
titres.push(this.ensemble["fenetre"+cnt])
this.ensemble["fenetre"+cnt].gotoAndStop(1);
cnt++
}
var nombre:Number=titres.length
aleatoire=function():Void{
var al:Number=Math.floor(Math.random()*nombre)
titres[al].play();
titres[al].onEnterFrame=function():Function{
if(this._currentframe==1){
this.stop();
delete(this.onEnterFrame)
return aleatoire()
}
}
}
aleatoire()
Avatar
Jérôme Courivaud
Le souci dans la modification de ton code est le "=" dans la condition :

if(clipChoice.ok = false and clipChoice.ok != null){

clipChoice.ok = false mes plutot clipChoice.ok == false

supprime aussi le var clipChoice = null;

s'il est null avant la condition alors le onEnterFrame ne sait plus qu'il y
a un clip qui bouge.

essaye de mon côté un tel code fonctionne.

voilà




"Jin" a écrit dans le message de
news:bmos5u$113$
Le seul code que j'ai mis c'est sur un clip cible(placé sur ma scene
principale) ou j'y ai noté ceci:

onClipEvent(enterFrame){
var titres=[_root.ensemble.fenetre1, _root.ensemble.fenetre2,
_root.ensemble.fenetre3, _root.ensemble.fenetre4, _root.ensemble.fenetre5,
_root.ensemble.fenetre6, _root.ensemble.fenetre7,


_root.ensemble.fenetre8,
_root.ensemble.fenetre9,


_root.ensemble.fenetre10,_root.ensemble.fenetre11];
var nombre = 11;
var aleatoire = Function(Math.floor(Math.random()*nombre+1));
titres[aleatoire].play();
}

J'ai donc par la suite, modifié mon code par celui de jérôme mais sans
résultat aussi...
je retrouve donc sur mon clip cible(de ma scene principale)
Le code:
onClipEvent(enterFrame){
var titres=[_root.ensemble.fenetre1, _root.ensemble.fenetre2,
_root.ensemble.fenetre3, _root.ensemble.fenetre4, _root.ensemble.fenetre5,
_root.ensemble.fenetre6, _root.ensemble.fenetre7,
_root.ensemble.fenetre8,_root.ensemble.fenetre9,
_root.ensemble.fenetre10,_root.ensemble.fenetre11];
var nombre = titres.length;
var clipChoice = null;
function(){
if(clipChoice.ok = false and clipChoice.ok != null){
var aleatoire = Function(Math.floor(Math.random()*nombre+1));
clipChoice = titres[aleatoire];
clipChoice.play();
}
}
}

Aussi,
this.ok = false; est placé en début de mes clips (fenetre se trouvant dans
le clip ensemble)
et
this.ok = true; est placé en fin de mes clips (fenetres se trouvant dans


le
clip ensemble)

Z'avez pas une idée du non-fonctionnement de la chose?
Merchi et chtapolomo tout el roussir!
(ca c'est de l'action jin...Hum!)




Avatar
Jin
Le seul code que j'ai mis c'est sur un clip cible(placé sur ma scene
principale) ou j'y ai noté ceci:

onClipEvent(enterFrame){
var titres=[_root.ensemble.fenetre1, _root.ensemble.fenetre2,
_root.ensemble.fenetre3, _root.ensemble.fenetre4, _root.ensemble.fenetre5,
_root.ensemble.fenetre6, _root.ensemble.fenetre7, _root.ensemble.fenetre8,
_root.ensemble.fenetre9, _root.ensemble.fenetre10,_root.ensemble.fenetre11];
var nombre = 11;
var aleatoire = Function(Math.floor(Math.random()*nombre+1));
titres[aleatoire].play();
}

J'ai donc par la suite, modifié mon code par celui de jérôme mais sans
résultat aussi...
je retrouve donc sur mon clip cible(de ma scene principale)
Le code:
onClipEvent(enterFrame){
var titres=[_root.ensemble.fenetre1, _root.ensemble.fenetre2,
_root.ensemble.fenetre3, _root.ensemble.fenetre4, _root.ensemble.fenetre5,
_root.ensemble.fenetre6, _root.ensemble.fenetre7,
_root.ensemble.fenetre8,_root.ensemble.fenetre9,
_root.ensemble.fenetre10,_root.ensemble.fenetre11];
var nombre = titres.length;
var clipChoice = null;
function(){
if(clipChoice.ok = false and clipChoice.ok != null){
var aleatoire = Function(Math.floor(Math.random()*nombre+1));
clipChoice = titres[aleatoire];
clipChoice.play();
}
}
}

Aussi,
this.ok = false; est placé en début de mes clips (fenetre se trouvant dans
le clip ensemble)
et
this.ok = true; est placé en fin de mes clips (fenetres se trouvant dans le
clip ensemble)

Z'avez pas une idée du non-fonctionnement de la chose?
Merchi et chtapolomo tout el roussir!
(ca c'est de l'action jin...Hum!)