XML을 사용하지 않고서 트리를 만드는 방법을 소개 합니다. XML쓰면 가끔가다 뭐시기한것이 있어서리 ...


package wonsama.util.tree

{

       import mx.collections.ArrayCollection;

      

       public class TreeNode

       {

             public var id:int;               //아이디

             public var name:String;          //이름

             public var type:int;             //타입

            

//부모노드

             public var parent:TreeNode;     

             //자식노드 집합체

             [Bindable] public var children:ArrayCollection;            

                          

             /**

              * 자식을 추가한다.

              * ==> 자식을 추가하는 동시 해당 자식의 부모가 설정된다

              * @param node 추가하려는 자식

              * */

             public function addChild(node:TreeNode):void{

                    if(this.children == null){

                           this.children = new ArrayCollection;

                    }     

                    node.parent = this;

                    children.addItem(node);                

             }

            

             public function toString():String{

                    return name;

             }

       }

}


이런 식으로 클래스를 만들어서 Tree에 바인딩하여 사용하면 됩니다.

여기서 중요한 것은 children 이라는 변수명은 절대로 변경해서는 안됩니다. !!!!


[ Flex3 Tree Help 참조내용 ]

an Object class data provider must have all children in <code>children</code> fields.


- Test Code


private function createTree():void{

       var root:TreeNode = new TreeNode;

       root.name = "호드종족";

      

       var c1:TreeNode = new TreeNode;

       c1.name = "오크";

       var c2:TreeNode = new TreeNode;

       c2.name = "타우렌";

       var c3:TreeNode = new TreeNode;

       c3.name = "블러드엘프";

      

       root.addChild(c1);

       root.addChild(c2);

       root.addChild(c3);

      

       myTree.dataProvider = root;

}


<mx:Tree id="myTree" />

+ Recent posts