I'm attempting to open all nodes in a Tree control (expandItem on 
everything possible).  There's plenty of code out there explaining 
how to do it - works GREAT on static data.  But, I'm loading XML data 
from an external source and deriving an XML Tree from that data at 
runtime.  I set my Tree controls dataProvider property to my new 
XMLList/XMLListCollection I create, and no nodes get 
opened/expanded.  I can loop through it and see which items SHOULD 
get opened, but when I actually look at the Tree control, no nodes 
are opened.  I can take the same data I generate and create a static 
variable in the Script block or MXML (say <mx:XMLListCollection 
id='xlc'><mx:XMLList><item label="one"><item 
label="two"/></item></mx:XMLList></mx:XMLListCollection> or var 
xlc:XMLListCollection = new XMLListCollection(new XMLList(<item 
label='one'><item label='two'/></item>); ) and it'll work every time 
I run it.  But when I try something like:

function initTree():void
{
 // where xmlList is loaded at runtime
 myTree.dataProvider = new XMLListCollection(xmlList);
 openTree();
}
function openTree():void
{
 var xlc:XMLListCollection = myTree.dataProvider as XMLListCollection;
 var node:XMLList = xlc.source;
 for (var i:int = 0; i < node.length(); i++)
 {
   if (node.children() != null)
     myTree.expandItem(node, true);
 }
}

I can run this code, and looping through openTree(), 
myTree.expandItem get's "run" for all the appropriate nodes 
(although, this particular function will only open nodes one level 
below the root - my actual function has a bit more to open all 
nodes), however, in the display, none are actually opened just looks 
like: > one
Any ideas?

Reply via email to