Composant tree et action associée

4/5 (14 avis)

Vue 7 342 fois - Téléchargée 1 556 fois

Description

Exemple pour associer une action sur une branche d'un arbre.
Dans cette appli, l'arbre est rempli par l'appel d'un fichier XML.
Le clic sur un noeud retourne la valeur de la variable "src" dans le texte dynamique treeUrl.
Cela peu-être une url, un movie clip etc ...
J'espère que cela vous aidera pour associer une action à un arbre.

Code fait sous flash 8

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
36
Date d'inscription
vendredi 12 juin 2009
Statut
Membre
Dernière intervention
12 juillet 2009

hum... pardon ça marche au poil :)
Messages postés
36
Date d'inscription
vendredi 12 juin 2009
Statut
Membre
Dernière intervention
12 juillet 2009

Désolé de parler tout seul, mais bon encore un dernier souci... En fait, le dernier code marche bien quand le fla est ouvet. Quand le fla est ouvert, le swf marche bien, et quand le fla est fermé, il ne arche que deux ou trois fois.

De la même manière, au format html, ne fonction que deux ou trois fois, puis les swf ne se charge plus...

Est-ce qu'il ne manquerait pas une ligne du genre "décharger" ou réinitialiser etc...

Merci d'avance,

tristan :)
Messages postés
36
Date d'inscription
vendredi 12 juin 2009
Statut
Membre
Dernière intervention
12 juillet 2009

heu désolé, 1 _
blank est resté dans le code, mais il ne sert à rien bien entendu...
Messages postés
36
Date d'inscription
vendredi 12 juin 2009
Statut
Membre
Dernière intervention
12 juillet 2009

Sinon ça marche nickel comme ça :) !!

stop();
// Chargement du fichier tree.XML pour afficher l'arbre
var contenu_arbre:XML = new XML();
contenu_arbre.ignoreWhite=true;
contenu_arbre.onLoad = function(success:Boolean){
arbre.dataProvider = contenu_arbre;
}
contenu_arbre.load("tree.xml");
// fonction qui récupère la valeur src du noeud sélectionné
var treeListener:Object = new Object();
treeListener.change = function(evt:Object) {
var treeNode:XMLNode = evt.target.selectedItem;
if (treeNode.attributes.src != undefined) {
// charge la src en movie
charge_load.loadMovie(treeNode.attributes.src, _blank);
;
}
}

arbre.addEventListener("change", treeListener);
Messages postés
36
Date d'inscription
vendredi 12 juin 2009
Statut
Membre
Dernière intervention
12 juillet 2009

Bonsoir Cefar,

j'ai essayé mais ça ne fonctionne pas, je ne comprends pas... Voici le code au cas où...

//Une class que j'ai trouvé sur ce site et qui fonctionne bien, pour avoir un petit champ recherche

import com.wikimb.TreeDoc

var single = new TreeDoc(docTree, searchField, activeChange);
single.load("truc.xml");
single.onSelect = function (item:XMLNode) {
trace(item);
}
// fonction qui récupère la valeur src du noeud sélectionné
var treeListener:Object = new Object();
treeListener.change = function(evt:Object) {
}
var treeNode:XMLNode = evt.target.selectedItem;
if (treeNode.attributes.src != undefined) {
}
//LE nouveau code pour charger MovieCLip, les .swf de la valeur src

chargeMovie(treeNode.attributes.src);
function chargeMovie(monMovieClip:String):Void {
charge_load.autoLoad = false;
charge_load.contentPath = monMovieClip;
charge_load.load();
}

docTree.addEventListener("change", treeListener);
stop();
// Chargement du fichier tree.XML pour afficher l'arbre
var contenu_docTree:XML = new XML();
contenu_docTree.ignoreWhite=true;
contenu_docTree.onLoad = function(success:Boolean){
docTree.dataProvider = contenu_docTree;
}
contenu_docTree.load("truc.xml");

Quelqu'un voit-il l'erreur ? Je ne comprends pas pourquoi ça ne marche pas.

ça ne vient pas du fichier xml. Il marchait parfaitement quand il s'agissait d'afficher src en text dynamique.

ça ne vient pas de l'ajout du champs de recherche, puisque j'ai aussi fait l'essai directement sur tree.fla.

ça ne vient pas du swf que je veux charger, car j'arrive à le charger indépendamment du tree component.

J'ai pensé à nommer charge_load l'occurence de loader,

Là je ne vois pas du tout ce que c'est...

Trop triste, trop prêt du but, trop pas de solution abordable à mon petit niveau...
Afficher les 14 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.