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?