Récupération du bon _x !!

cs_lpz Messages postés 4 Date d'inscription vendredi 28 mars 2003 Statut Membre Dernière intervention 9 décembre 2004 - 1 nov. 2004 à 16:56
jackrock Messages postés 23 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 21 juillet 2006 - 24 nov. 2004 à 15:08
Le sujet déjà promet !!!

bonjour,

un peux novice, j'ai un soucis sur la récupération du
positionnement _x et _y (les coordonnées en bref)
lors d'une duplication de Clip.

J'explique la scène...

Dans un calque je place un clip "boule0"
dans le premiere frame de mon calque "Action"
je crée la duplication du clip "Boule" par itération ce qui me donne
5 clips supplémentaire "Boule1" "Boule2" ..."Boule5"

Dans le clip de base "Boule", je gère un drag&drop

Donc jusque là je n'ai aucun Pb.
Je me retrouve avec 6 clips au total et le Drag&Drop
fonctionne bien

J'ai décidé d'enfermer ces "boules" dans une boite !

Sur ma scène principale je crée un nouveau calque "Boite", je
dessine un joli rectangle, je transforme mon rectangle
en symbol (je ne sais pas pourquoi).

Le but du jeu étant que lorsque je sort une boule de la boite
elle disparaisse.

Et c'est mainteant que tout ce corse
La récupération des coordonnées de la boite ne donne pas les même données que celles données dans le panneau propriétés
sur un clip boule, un _root["Boule1"]._x ne donne pas la même chose qu'un this._x .
Rien ne s'aligne et impossible de retrouver le 0,0 de la scène !!??
AAaarggg

Aidez moi svp
D'avance Merci
LPZ©

LPZ©

3 réponses

jackrock Messages postés 23 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 21 juillet 2006
23 nov. 2004 à 21:27
_root["Boule1"]._x prkoi
alors que _root.Boule1._x c'est plus simple

_root["Boule" + i]._x ok

this._x surement tu le place sur le clip

fais une chose simple tu mets sur ta boule ou dans ta boule

onClipEvent(enterFrame){// si tu es sur le clip
this.onEnterFrame = function(){//si tu es dans le clip

_parent.position = this._x;
}
et sur la scene
this.onEnterFrame = function(){//si tu es dans le clip

position2= boule1._x;
trace( position add " ==>> " add position2);
}
Fais attention car si ton code est dans ta boule ttes tes boules vont envoyer _parent.position = this._x; donc tu ne ciblera pas forcement celle qui t'interesse

mais au cours de ton duplicate par boucle for par exemple
tu peux donner le code que tu veux à une seule boule

en ciblant la bonne boule tu ne peux obtenir que des valeurs égales
0
lespaulz Messages postés 16 Date d'inscription vendredi 28 mars 2003 Statut Membre Dernière intervention 26 mars 2007
24 nov. 2004 à 08:47
ok effectivement en gravitant dans les meandre de tutos sur MX2004, j'ai reperé ce type de code:
this.onEnterFrame = function(){
...
...

}

qui fonctionne d'ailleur avec tout les evenements.

Mais crois tu vraiment que l'on puisse attribuer un code spécifique par occurrence de BOULE dans mon duplicate.

J'y suis pas arrivé
a part dans le ClipEvent(Load) de la boule ou je peux recharger
les fonction liées a la boule mais il reste le même pour toutes mes occurrences

Encore merci c bien sympa

Ni dieu Ni Maitre
0
jackrock Messages postés 23 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 21 juillet 2006
24 nov. 2004 à 15:08
ben oui par exemple on va dire que tu as le clip avec nom d'occurence boule0 sur la scène

tu veux 5 boules et tu veux pouvoir déplacer que la boule3
C'est null mais c pour te montrer comment attribuer un code à la volée.

nb_boule = 4; // because il y en a déjà une

for(i=1;i<=nb_boule;i++){

boule0.duplicateMovieClip("boule" + i,i);
this["boule" + i]._x = this["boule" + i]._width +Math.random()*(Stage.Width - this["boule" + i]._width*2);
this["boule" + i]._y = this["boule" + i]._height +Math.random()*(Stage.Height - this["boule" + i]._height*2);

//voila pour toi
//si la boule est bien boule3
//je donne le code pour le déplacement
if(i==3){
this["boule" + i].onPress = function(){
this.startDrag(true);
}//fin de onPress
this["boule" + i].onRelease = function(){
this.stopDrag();
}//fin de onRelease
this["boule" + i].onReleaseOutside = function(){
this.stopDrag();
}//fin de onReleaseOutside
}//fin de if
}//fin de for
0
Rejoignez-nous