项目中用到了Kap IT Lab, 功能挺强大的。网上搜索一下动态添加节点,未果。在官网发现一例,稍稍加工分享之!
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:KapLab="com.kapit.visualizer.*"> <mx:Script> <![CDATA[ import com.kapit.visualizer.LayoutConstants; import com.kapit.visualizer.renderer.GenericObject; import com.kapit.visualizer.renderer.GenericSprite; private var node5:GenericSprite; private var center:Point ; private function onCreationComplete():void { center = new Point(myVisualizer.width / 2, myVisualizer.height / 2); var node1:GenericSprite = myVisualizer.addNodeElement({id:'1'}, null, center); node1.type = GenericObject.EXPAND_SPRITE; var node2:GenericSprite = myVisualizer.addNodeElement({id:'11'}, node1, center); var node3:GenericSprite = myVisualizer.addNodeElement({id:'12'}, node1, center); var node4:GenericSprite = myVisualizer.addNodeElement({id:'2'}, null, center); node5 = myVisualizer.addNodeElement({id:'3'}, null, center); myVisualizer.addLinkElement({id:'l1'}, node1, node2); myVisualizer.addLinkElement({id:'l2'}, node1, node3); myVisualizer.addLinkElement({id:'l3'}, node1, node4); myVisualizer.addLinkElement({id:'l4'}, node1, node5); myVisualizer.reLayout(); } protected function btn_clickHandler(event:MouseEvent):void { var obj:Object = new Object(); obj.id = Math.round(Math.random()* 10000).toString() ; var node:GenericSprite = myVisualizer.addNodeElement(obj, null, center); var linkObj:Object = new Object(); linkObj.id = obj.id + "lind" ; myVisualizer.addLinkElement(linkObj,node5,node); myVisualizer.reLayout(); } ]]> </mx:Script> <KapLab:Visualizer x="0" y="0" width="100%" height="100%" backgroundColor="0xFFFFFF" id="myVisualizer" labelFields="{['id']}" coloringPolicy="{Visualizer.UNIFORM_COLORING}" layout="{LayoutConstants.HIERARCHICAL_TREE_LAYOUT}" creationComplete="{onCreationComplete()}"/> <mx:Button id="btn" label="add" click="btn_clickHandler(event)"/> </mx:Application>