Nom d'un nouveau clip = élements d'un tableau

Résolu
Signaler
Messages postés
21
Date d'inscription
vendredi 24 février 2006
Statut
Membre
Dernière intervention
19 août 2010
-
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
-
j'ai créé un tableau duquel je peux identifier chaque élément par ce code :
trace(A_baurin.sort()[0]) // me donne l'élément [0] de mon tableau A_baurin.
je voudrais donner ce résultat à un nouveau nom d'occurence d'un clip :
duplicateMovieClip(_root.bouton, A_baurin.sort()[0] , 5)
...mais cela ne fonctionne pas.
J'ai essayé :
mon_clip = A_baurin.sort()[0]
duplicateMovieClip(_root.bouton, mon_clip , 5)
pas de résultat : mon clip ne se crée pas (et par conséquence, n'apparait pas à la position _x et _y que je lui indique)

Si vous avez quelqu'idées. Merci d'avance.

11 réponses

Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut
pour mx 2004 et flash8
c'est :

var sorted:Array = A_baurin.sort();
var newClip:MovieClip = _root.bouton.duplicateMovieClip(sorted[0],_root.getNextHighestDepth());
tu peux ensuite appelé ton clip par newClip (newClip._x ...;) ou par son nom d'instance graphisque : this[sorted[0]] (this[sorted[0]]._x ...;)

Encore mieux si tu veux faire un clip par elt du tableau :

var sorted:Array = A_baurin.sort();
var index:Number = 0;
va count:Number = sorted.length;
while (index < count){
var newClip:MovieClip = _root.bouton.duplicateMovieClip(sorted[index],_root.getNextHighestDepth());
if (index > 0) newClip._y += index*newClip._height;
index++;
}

Attention la remarque précedente sur les noms (newClip vs this[sorted[0]]) n'est plus valable puisque newClip n'existe que dans la boucle.

++

Flash sans Limites
_Benjy chez kOlapsis

Composants Flash8 : http://composants.kolapsis.net
- kSql pour se connecter à mysql et executer des requètes depuis Flash
- kImage : gestionnaire d'image avec diaporama, redimentionnement automatique des image et zoom
- kTextInput : champ TextInput évolué avec de multiples controles de saisie intégrés
- kColorPicker : un simple petit selecteur de couleur

merci de penser a accepter les réponse qui vous aident...
.
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut
duplicateMovieClip
le nom est dedans MovieClip ! c pas fait pour dupliqué un bouton !
pour leur affecté un fonction :
dans la boucle ajoute :
newClip.index = index;
newClip.onRelease = function(){
this._parent.ouvrir(index);
}
et en dehors de la boucle la fonction ouvrir:
function ouvrir(index:Number){
trace (A_Nom[index]); // >>Louis
// a toi de faire le reste
}

Flash sans Limites
_Benjy chez kOlapsis

Composants Flash8 : http://composants.kolapsis.net
- kSql pour se connecter à mysql et executer des requètes depuis Flash
- kImage : gestionnaire d'image avec diaporama, redimentionnement automatique des image et zoom
- kTextInput : champ TextInput évolué avec de multiples controles de saisie intégrés
- kColorPicker : un simple petit selecteur de couleur

merci de penser a accepter les réponse qui vous aident...
.
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut
il te manque juste le this devant index LOL
this._parent.ouvrir(this.index);

Flash sans Limites
_Benjy chez kOlapsis

Composants Flash8 : http://composants.kolapsis.net
- kSql pour se connecter à mysql et executer des requètes depuis Flash
- kImage : gestionnaire d'image avec diaporama, redimentionnement automatique des image et zoom
- kTextInput : champ TextInput évolué avec de multiples controles de saisie intégrés
- kColorPicker : un simple petit selecteur de couleur

merci de penser a accepter les réponse qui vous aident...
.
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

index n'est pas une variable preexistante dans flash, tu la trouvera pas dans l'aide (ou ss rapport)
c moi qui la défini juste av de commencer la boucle while (var index:Number = 0;) et je l'incrémente dans la boucle (index++;)
Look l'aide sur while.
et pour ton autre question :

var A_Nom:Array = Array("Louis","Nicolas","Luc","Frédéric","Marie-Louise","Helène","Gustave");
var sorted:Array = A_Nom.sort();

var index:Number = 0;
var count:Number = sorted.length;
while (index < count){
var newClip:MovieClip = bouton.duplicateMovieClip(sorted[index],_root.getNextHighestDepth());
if (index > 0) newClip._y += index*newClip._height;
newClip.label.text = sorted[index];
newClip.index = index;
newClip.onRollOver = function() {
this._parent.ouvrir(this.index);
}
index++;
}

function ouvrir(index){
var target:MovieClip = this[sorted[index]];
trace ("Clip : "+sorted[index]+"\n\t{x:"+target._x+", y:"+target._y+"}");
}

Oubli pas d'accepter please ;)

et LOL cortoh, j'fais ce que je peux :d

@llé ++

Flash sans Limites
_Benjy chez kOlapsis

Composants Flash8 : http://composants.kolapsis.net
- kSql pour se connecter à mysql et executer des requètes depuis Flash
- kImage : gestionnaire d'image avec diaporama, redimentionnement automatique des image et zoom
- kTextInput : champ TextInput évolué avec de multiples controles de saisie intégrés
- kColorPicker : un simple petit selecteur de couleur

merci de penser a accepter les réponse qui vous aident...
Messages postés
21
Date d'inscription
vendredi 24 février 2006
Statut
Membre
Dernière intervention
19 août 2010

Un grand merci _benjy.
Messages postés
21
Date d'inscription
vendredi 24 février 2006
Statut
Membre
Dernière intervention
19 août 2010

Voici le code :
var A_Nom:Array = Array();
A_Nom[0] = "Louis";
A_Nom[1] = "Nicolas";
A_Nom[2] = "Luc";
A_Nom[3] = "Frédéric";
var sorted:Array = A_Nom.sort();
var index:Number = 0;
var count:Number = sorted.length;
_root.bouton._x = 100;
while (index<count) {
var newClip:MovieClip = _root.bouton.duplicateMovieClip(sorted[index], getNextHighestDepth());
if (index>0) {
newClip._y += index*(newClip._height+4);
}
index++;
}
J'ai deux soucis :
1. Quand je définis le comportement de mon _root.bouton comme un clip, pas de soucis mais quand je veux lui donner le comportement de bouton.... aie (plus rien sur ma scène)

2. Je souhaiterais attribuer à chaque bouton (correspondant au nombre d'élements de mon tableau) une action différente (gotoAndPlay ou call Function)
Messages postés
1255
Date d'inscription
dimanche 18 décembre 2005
Statut
Membre
Dernière intervention
2 décembre 2008

la ou Benjy passe, les posts trepassent..

.


Pour en savoir plus!
Messages postés
21
Date d'inscription
vendredi 24 février 2006
Statut
Membre
Dernière intervention
19 août 2010

J'ai suivi à la lettre les conseils de _benjy :

var A_Nom:Array = Array();
A_Nom[0] = "Louis";
A_Nom[1] = "Nicolas";
A_Nom[2] = "Luc";
A_Nom[3] = "Frédéric";
A_Nom[4] = "Marie-Louise";
A_Nom[5] = "Helène";
A_Nom[6] = "Gustave";
var sorted:Array = A_Nom.sort();
var index:Number = 0;
var count:Number = sorted.length;
//
//
_root.bouton._x = 100;
while (index<count) {
var newClip:MovieClip = _root.bouton.duplicateMovieClip(sorted[index], getNextHighestDepth());
newClip.index = index;
newClip.onRollOver = function() {
this._parent.ouvrir(index);
};
if (index>0) {
newClip._y += index*(newClip._height+4);
}
index++;
}
function ouvrir(index:Number) {
trace(A_Nom[index]);
}

J'ai un Undef qui sort. Pour tester le code, il suffit de mettre un petit clip nommé 'bouton' et de coller le code sur la première image
Messages postés
21
Date d'inscription
vendredi 24 février 2006
Statut
Membre
Dernière intervention
19 août 2010

Et ben voilà, un grand merci _benjy
T'es un chef.
Merci encore
Messages postés
1255
Date d'inscription
dimanche 18 décembre 2005
Statut
Membre
Dernière intervention
2 décembre 2008

bon, donc, la ou Benjy passe (et repasse ;p) ...) les posts trepassent..

.


Pour en savoir plus!
Messages postés
21
Date d'inscription
vendredi 24 février 2006
Statut
Membre
Dernière intervention
19 août 2010

Bon, c'est pas que je te mets à l'épreuve, mais je viens de passer 92 minutes à chercher comment identifier les coordonnées _y des nouveaux clips créés en passant simplement la souris dessus.

PS : ou puis trouver des infos sur .index que tu as utilisé dans ton code ? J'ai compris la logique de tes solutions, sauf ce point...