Comunidad de diseño web y desarrollo en internet online

pasar al siguiente/anterior nodo de un tree

Citar            
MensajeEscrito el 16 Oct 2006 03:25 pm
Hola bros & sis!! :D

Pues heme aquí, me he atorado con una galería de imagenes basada en el componente tree; funciona perfectamente, ya logré cambiar los iconos y todo eso. Pero necesito agregar la posibilidad de tener un botón que me muestre la imagen anterior o la siguiente, para que el usuario no tenga que controlar forzosamente la galería desde el tree. :crap:

Me estoy basando en un ejemplo que encontré y lo he empezado a adaptar mis necesidades, aquí el AS:

Código :

System.useCodepage = true;
stop();
var my_pb:mx.controls.ProgressBar;
var my_ldr:mx.controls.Loader;
var my_tree:mx.controls.Tree;

my_pb._visible = false;
my_pb.indeterminate = true;
my_pb.setSize(160, 30);
my_pb.source = my_ldr;
my_pb.mode = "polled";
var pbListener:Object = new Object();
pbListener.complete = function(evt:Object) {
   evt.target._visible = false;
};
my_pb.addEventListener("complete", pbListener);

var treeDP_xml:XML = new XML();
treeDP_xml.ignoreWhite = true;
treeDP_xml.onLoad = function(success:Boolean) {
   my_tree.vScrollPolicy = "auto";
   my_tree.setStyle("openEasing", mx.transitions.easing.Back.easeOut);
   my_tree.setStyle("defaultLeafIcon", "foto");
   my_tree.setStyle("folderOpenIcon", "cam");
   my_tree.setStyle("folderClosedIcon", "cam");
   my_tree.setStyle("disclosureClosedIcon", "nullicon");
   my_tree.setStyle("disclosureOpenIcon", "nullicon");
   if (success) {
      my_tree.dataProvider = this.firstChild;
   }
};

treeDP_xml.load("galeria/listado.xml");
var treeListener:Object = new Object();
treeListener.change = function(evt:Object) {
   var treeNode:XMLNode = evt.target.selectedItem;
   if (treeNode.attributes.src != undefined) {
      my_pb._visible = true;
      my_ldr.load(treeNode.attributes.src);
   }
   my_tree.setIsOpen(my_tree.selectedItem,  !my_tree.getIsOpen(my_tree.selectedItem), true, this);
};
my_tree.addEventListener("change", treeListener);


Imagino que algo tiene que ver el usar el

Código :

getTreeNodeAt
pero la verdad estoy atorado con esto. :cry:

Espero puedan ayudarme :alabado: :alabado: :alabado: :alabado:

Por rosvel

SWAT Team

1311 de clabLevel

2 tutoriales
1 articulo
1 ejemplo

Genero:Masculino   SWAT

"la oficina"

firefox
Citar            
MensajeEscrito el 16 Oct 2006 05:40 pm
Propiedad Tree.selectedIndex :P

Código :

my_btn.addEventListener("click", clickBtn);
my_tr.setSize(200, 100);
var trDP_xml:XML = new XML("<node label='1st Local Folders'><node label='Inbox' data='0' /><node label='Outbox' data='1' /></node><node label='2nd Local Folders'><node label='Inbox' data='2' /><node label='Outbox' data='3' /></node>");
my_tr.dataProvider = trDP_xml;
// Seleccionar el segundo nodo.
function clickBtn() {
   trace(my_tr.selectedNode);
   my_tr.selectedIndex +=1;
}

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 16 Oct 2006 07:18 pm
Gracias por responder zah!

He adaptado tu código:

Código :

var my_pb:mx.controls.ProgressBar;
var my_ldr:mx.controls.Loader;
var my_tree:mx.controls.Tree;

my_pb._visible = false;
my_pb.indeterminate = true;
my_pb.setSize(160, 30);
my_pb.source = my_ldr;
my_pb.mode = "polled";
var pbListener:Object = new Object();
pbListener.complete = function(evt:Object) {
   evt.target._visible = false;
};
my_pb.addEventListener("complete", pbListener);

var treeDP_xml:XML = new XML("<node label='1st Local Folders'><node label='Inbox' data='0' /><node label='Outbox' data='1' /></node><node label='2nd Local Folders'><node label='Inbox' data='2' /><node label='Outbox' data='3' /></node>");
treeDP_xml.ignoreWhite = true;
treeDP_xml.onLoad = function(success:Boolean) {
   my_tree.vScrollPolicy = "auto";
   my_tree.setStyle("openEasing", mx.transitions.easing.Back.easeOut);
   my_tree.setStyle("defaultLeafIcon", "foto");
   my_tree.setStyle("folderOpenIcon", "cam");
   my_tree.setStyle("folderClosedIcon", "cam");
   my_tree.setStyle("disclosureClosedIcon", "nullicon");
   my_tree.setStyle("disclosureOpenIcon", "nullicon");
   if (success) {
      my_tree.dataProvider = this.firstChild;
   }
};

treeDP_xml.load("galeria/listado.xml");
var treeListener:Object = new Object();
treeListener.change = function(evt:Object) {
   var treeNode:XMLNode = evt.target.selectedItem;
   if (treeNode.attributes.src != undefined) {
      my_pb._visible = true;
      my_ldr.load(treeNode.attributes.src);
   }
   my_tree.setIsOpen(my_tree.selectedItem,  !my_tree.getIsOpen(my_tree.selectedItem), true, this);
};
my_tree.addEventListener("change", treeListener);
/////
btn_next.addEventListener("click", clickBtn);
function clickBtn() {
   trace(my_tree.selectedNode);
   my_tree.selectedIndex +=1;
}
btn_prev.addEventListener("click", clickBtn2);
function clickBtn2() {
   trace(my_tree.selectedNode);
   my_tree.selectedIndex -=1;
}


Y ya he logrado moverme entre cada elemento, incluso se mueve indiscriminadamente entre nodos y subnodos (dejando los nodos cerrados...ojala se pudiera cambiar eso, si se terminan los subnodos de un nodo, que se detenga o bien que abra el siguiente nodo). Lo que no logro hacer es que muestre la imagen que se supone esta seleccionada.

Por rosvel

SWAT Team

1311 de clabLevel

2 tutoriales
1 articulo
1 ejemplo

Genero:Masculino   SWAT

"la oficina"

firefox
Citar            
MensajeEscrito el 16 Oct 2006 07:37 pm
Lo de los nodos lo puedes hacer con el método Tree.getIsBranch
Y lo de cargar la imagen, pues en tu listener change del Tree, tuLoader.load(tuTree.selectedNode.attributes.url)

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 16 Oct 2006 09:49 pm
la verdad, la verdad....no tengo idea de como aplicar lo que me mencionas :oops: :oops: :oops: :crap: :crap: :crap:

Por rosvel

SWAT Team

1311 de clabLevel

2 tutoriales
1 articulo
1 ejemplo

Genero:Masculino   SWAT

"la oficina"

firefox
Citar            
MensajeEscrito el 16 Oct 2006 09:56 pm
creo q ya lo he resuelto :D :D :D :lol: :lol: :lol: :lol:

deja lo purebo bien y en seguida posteo apra que alguien mas pueda usarlo.

gracias

Por rosvel

SWAT Team

1311 de clabLevel

2 tutoriales
1 articulo
1 ejemplo

Genero:Masculino   SWAT

"la oficina"

firefox
Citar            
MensajeEscrito el 17 Oct 2006 02:43 pm
posteo el problema resuelto, espero a alguien más le sirva....

Código :

System.useCodepage = true;
stop();
var my_pb:mx.controls.ProgressBar;
var my_ldr:mx.controls.Loader;
var my_tree:mx.controls.Tree;

my_pb._visible = false;
my_pb.indeterminate = true;
my_pb.setSize(160, 30);
my_pb.source = my_ldr;
my_pb.mode = "polled";
var pbListener:Object = new Object();
pbListener.complete = function(evt:Object) {
   evt.target._visible = false;
};
my_pb.addEventListener("complete", pbListener);

var treeDP_xml:XML = new XML("<node label='1st Local Folders'><node label='Inbox' data='0' /><node label='Outbox' data='1' /></node><node label='2nd Local Folders'><node label='Inbox' data='2' /><node label='Outbox' data='3' /></node>");
treeDP_xml.ignoreWhite = true;
treeDP_xml.onLoad = function(success:Boolean) {
   my_tree.vScrollPolicy = "auto";
   my_tree.setStyle("openEasing", mx.transitions.easing.Back.easeOut);
   my_tree.setStyle("defaultLeafIcon", "foto");
   my_tree.setStyle("folderOpenIcon", "cam");
   my_tree.setStyle("folderClosedIcon", "cam");
   my_tree.setStyle("disclosureClosedIcon", "nullicon");
   my_tree.setStyle("disclosureOpenIcon", "nullicon");
   if (success) {
      my_tree.dataProvider = this.firstChild;
   }
};

treeDP_xml.load("galeria/listado.xml");
var treeListener:Object = new Object();
treeListener.change = function(evt:Object) {
   var treeNode:XMLNode = evt.target.selectedItem;
   if (treeNode.attributes.src != undefined) {
      my_pb._visible = true;
      my_ldr.load(treeNode.attributes.src);
   }
   my_tree.setIsOpen(my_tree.selectedItem,  !my_tree.getIsOpen(my_tree.selectedItem), true, this);
};
my_tree.addEventListener("change", treeListener);
/////
btn_next.addEventListener("click", clickBtn);
function clickBtn() {
   trace(my_tree.selectedNode);
   my_tree.selectedIndex +=1;
   my_pb._visible = true;
   my_ldr.load(my_tree.selectedNode.attributes.src)
   my_tree.setIsOpen(my_tree.selectedItem,  !my_tree.getIsOpen(my_tree.selectedItem), true, this);
}
btn_prev.addEventListener("click", clickBtn2);
function clickBtn2() {
   trace(my_tree.selectedNode);
   my_tree.selectedIndex -=1;
   my_pb._visible = true;
   my_ldr.load(my_tree.selectedNode.attributes.src)
   my_tree.setIsOpen(my_tree.selectedItem,  !my_tree.getIsOpen(my_tree.selectedItem), true, this);
}
^^ ^^ ^^ ^^
Gracias por la ayuda....saludos

Por rosvel

SWAT Team

1311 de clabLevel

2 tutoriales
1 articulo
1 ejemplo

Genero:Masculino   SWAT

"la oficina"

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.