web界面框架的设计之三-- Tree树形菜单的实现

利用Tree控件实现树形菜单,代码

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" creationComplete="leftinit()">
	<mx:Metadata>
    	[Event(name="leftTreeEvent","MyEvent.TopEvent")]
    </mx:Metadata>
	<mx:Script>
		<![CDATA[
			
			import mx.rpc.remoting.mxml.RemoteObject;
			import mx.rpc.AsyncToken;
			import mx.rpc.AbstractOperation;
			import mx.rpc.AsyncResponder;
			import mx.rpc.events.ResultEvent;
			import mx.controls.Alert;
			import MyEvent.LeftTreeEvent;
			
			private var MenuRo:RemoteObject;
			private var treeDate:XML;
			
			
			private var selectedNode:XML;
			
			private function leftinit():void
		    {
		    	MenuRo = new RemoteObject("menuService"); 
		    	
		    	var menuToken:AsyncToken ;
				var operation:AbstractOperation = MenuRo.getOperation("getTree");
				menuToken = operation.send(2);
				menuToken.addResponder(new AsyncResponder(treeSuccess,null));  
		    }
		    
		    //树回调函数
			private function treeSuccess(result:Object,token:Object=null):void
			{
				var eve:ResultEvent = result as ResultEvent;
				if(eve.result != null)
				{		
					 var returnString:String = eve.result as String;
					 if(returnString !="" && returnString != null){
						 treeDate = new XML(returnString);
						 tree.dataProvider = treeDate;
						 tree.callLater(expandTree);
					 }
				}
			}
			
			//树行自动展开
			private function expandTree():void{   
			     tree.expandChildrenOf(treeDate , true);   
			}
		    
		    public function treeChanged(event:Event):void
		    {
		    	selectedNode=Tree(event.target).selectedItem as XML;
		    	var menuEvent:LeftTreeEvent = new LeftTreeEvent("leftTreeEvent",
		    		selectedNode.@hreflink,selectedNode.@fid);
				dispatchEvent(menuEvent);
		    }
		    
		    
		]]>
	</mx:Script>
	<mx:VBox x="0" y="0" width="100%" height="100%">
		<mx:Tree width="100%" height="100%" id="tree" labelField="@label" 
			showRoot="true" fontSize="14"  change="treeChanged(event)" ></mx:Tree>
	</mx:VBox>
	
</mx:Canvas>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值