AttachMovie... bref disposition de clips

Neferieb Messages postés 14 Date d'inscription lundi 28 mars 2005 Statut Membre Dernière intervention 30 octobre 2006 - 9 avril 2005 à 10:36
stown Messages postés 93 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 11 mai 2006 - 10 avril 2005 à 12:16
Salut à ceux qui se sont égarés sur cette page :p

Alors comment faire simple...

Voila en gros je représente un arbre de recherche, ou chacun des liens est simplement représenté par une ligne. Ces lignes sont donc conçues à partir des coordonnées des 2 extremes représentant chacun un noeud... Le probleme apparait ici: j'aimerais positionné un bouton (sous forme de rond) à chacun des noeuds, autrement que ça ressemble au dessin d'une molécule.... et de pouvoir déplacer le tout sans que les boutons soient dépendants (3D oblige)

L'idée se rapproche plus d'un Array contenant les clips...via lequel on pourrait modifier chacun des objets...mais bon ca doit pas etre possible je suppose....

J'ai donc essayé un truc tout bete qui ressemble à ça:

function registerClipsNodes() {
for(var i=0;i<nodes.length;i++) {
_root.attachMovie("nodeBtn","nodeClip"+i,1);
}
}

// où "nodeBtn" est le nom du bouton dans la bibli

function drawNode() {
for(var n=0;n<nodes.length;n++) {
_root["nodeClip"+n]._x=50*n;
_root["nodeClip"+n]._y=50*n;
}
}

bref ça marche pas trop puisq'il ne maffiche qu'un bouton et à priori la dernière "occurence"... j'avoue que les nuits blanches enchaînées ne m'aident pas forcément à bien comprendre...

Voila le principe est donc d'avoir une fonction qui prépare le noeuds/boutons (sans les afficher) puis une qui va réellement se charger de modifier chacun des bouttons(x,y...et compagnie)

Voila je butte sévère sur les clips qui ne sont pas vraiment ma tasse de thé mais qui sont indispensable pr rendre intéractifs mon arbre :'(

Yeuh suis perdu!

6 réponses

stown Messages postés 93 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 11 mai 2006
9 avril 2005 à 11:09
profondeur = 1

function registerClipsNodes() {
for(var i=0;i<nodes.length;i++) {
profondeur ++
_root.attachMovie("nodeBtn","nodeClip"+i,profondeur );
}
}

Essaie sa.... tu ne peu pas mettre 2 clip sur la même profondeur donc logiquement sa ne peu pas marché comme tu la fait!

ptite astuce au passage:
function drawNode() {
for(var n=0;n<nodes.length;n++) {
_root["nodeClip"+n]._x=50*n;
_root["nodeClip"+n]._y=50*n;
}
}
cela te permet donc de placé tes bouton ou tu le veus (50*n)
tu peu le faire comme sa :
_root.attachMovie("clipDeLaBiblio","NouveauNom"+i,Profondeur,{_x:50,_y:50});
ce qui te donnrai un code du genre:

profondeur = 1
function registerClipsNodes() {
for(var i=0;i<nodes.length;i++) {
profondeur ++
//les 2 variable son la pour simplifié la lisibilité
val_x=50*i
val_y=50*i
_root.attachMovie("nodeBtn","nodeClip"+i,profondeur,{_x:val_x,_y: val_y} );
}
}

voila normalement sa devrai marché...
0
Neferieb Messages postés 14 Date d'inscription lundi 28 mars 2005 Statut Membre Dernière intervention 30 octobre 2006
9 avril 2005 à 20:24
Tout d'abord merci pour la réponse ;)

Mon arbre est fait, mes noeuds (les boutons ) positionnés et réajustés en fonction de la profondeur (des coordonnées spatiales) mais désormais j'aimerai interragir avec le bouton... à savoir je clique dessus ou tout autre action sur le bouton et cela me provoque le lancement d'une fonction...

par exemple, euh...

je clique sur le movieclip nodeClipi (lire "nodeClip"+i donc n'importe quel noeud...) et hop par magie je lance la fonction reception(i)

reception(n:Number) {
trace("je suis le noeud:"+n);
}

=> donc ts les noeuds/boutons issus du même bouton de la biblio déclencheraient ts les mêmes fonction mais en les appelant avec des parametres différents

En plus j'ai un doute, cette action se declare ou(onMousedown il me semble)? au moment ou l'on génère les boutons à la chaîne (voir reponse au dessus) ou alors ...dans la scene, autrement dit ds le bouton de la bibli?

donc voila question de noob sans doute avec un bonus de formulation de question qui laisse a desirer ^^ ... mais bon l'interet d'avoir fait mon arbre sous flash c'est de pouvoir le rendre "réactif" or ça grince des dents
0
Neferieb Messages postés 14 Date d'inscription lundi 28 mars 2005 Statut Membre Dernière intervention 30 octobre 2006
9 avril 2005 à 22:16
j'ai essayé :

function drawNode() {
...
for(n=0;......
...
mc =_root.attachMovie("nodeBtn","nodeClip"+n,p);
mc._x=xp;
mc._y=yp;
mc.node=n;
mc.onPress = function() {trace("noeud:"+this.node);
}
...
}

ca marche héhé donc voila si ca peut aider qq1 ;)
0
Neferieb Messages postés 14 Date d'inscription lundi 28 mars 2005 Statut Membre Dernière intervention 30 octobre 2006
9 avril 2005 à 22:45
Bon bah me re... ça marche pas top en fait... Enfin ca marche que pour le trace... si je mets l'une de mes fonctions à la place... comme si de rien était! :'( ... dans le bloc d'instruction il a pas l'air de reconnaitre beaucoup de mes variables du style array...

La j'avoue ne plus savoir quoi tenter
0

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

Posez votre question
stown Messages postés 93 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 11 mai 2006
10 avril 2005 à 11:45
re!

voila comment faire:



profondeur = 1
function registerClipsNodes() {
for(var i=0;i<nodes.length;i++) {
profondeur ++
val_x=50*i
val_y=50*i
_root.attachMovie("nodeBtn","nodeClip"+i,profondeur,
{_x:val_x,_y: val_y} );

_root["nodeClip"+i].onRelease = function(){

_root.bouton_press()

}


}
}



function bouton_press(){

trace("H")

}



Oublie pas le _root quand tu lence la fonction ;) !

Ensuite il faut bien que sa soit des "bouton"!!!! regarde dans ta
bibliotéque, car si il sont dans la biblio en clip je crois que sa ne
marchera pas...
0
stown Messages postés 93 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 11 mai 2006
10 avril 2005 à 12:16
ah wai en faite j'ai pas trop réfléchi parse que si tu les met en bouton je croi pas que tu puisse faire attachMovie dessu...

donc ce que j'te conseilrai de faire comme sa:

tu garde tes clip comme il sont. Mais tu rajoute a l'intérieur un
bouton de la meme taille et tu met le alpha a 0% comme sa on le vois
pas,



et tu l'appel par ex "zone_clic" et sa donera sa:



profondeur = 1
function registerClipsNodes() {
for(var i=0;i<nodes.length;i++) {
profondeur ++
val_x=50*i
val_y=50*i
_root.attachMovie("nodeBtn","nodeClip"+i,profondeur,
{_x:val_x,_y: val_y} );

_root["nodeClip"+i].zone_clic.onRelease = function(){

_root.bouton_press()

}


}
}



function bouton_press(){

trace("H")

}
0
Rejoignez-nous