⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 valuelinker.mxml

📁 通过PHP读出数据库的记录内容
💻 MXML
字号:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();myService.send()" >
	<mx:Script>
		<![CDATA[
			import mx.messaging.messages.ErrorMessage;
		import mx.controls.List;
		import mx.collections.ArrayCollection;
		import mx.rpc.events.ResultEvent;
		import mx.controls.Button
		import mx.events.MoveEvent;
		import mx.controls.Label;
		import flash.display.Sprite;
		import mx.core.UIComponent;
		import mx.controls.Alert;
		

		
		[Bindable]
		private var totalStore:ArrayCollection = new ArrayCollection();
													//所有店铺的数组,这个数组在不刷新的时候会一直累加
		private var partStore:ArrayCollection;		//一次操作读出的店铺数组
		//public  var store_id:int=application.parameters.store_id;
		//public  var orn_url:String = "test.php?store_id=2" + store_id;
		public  var myVl:component = new component();					//定义一个全局参数
        private	var left:int;						//控件左的坐标
		private	var top:int;						//控件上的坐标
		private	var right:int;						//控件右的坐标
		private	var bottom:int;						//控件下的坐标
			
		private	var left_top:int;					//左上
		private	var right_top:int;					//右上
		private	var left_bottom:int;				//左下
		private	var right_bottom:int;				//右下
			
		private	var WIDTH:int  = 150;		//元素的宽度
		private	var HEIGHT:int = 30;		//元素的高度
		private	var margin:int = 10; 		//元素之间的间隙,宽间隔,高间隔一样
		/*
		 * 从外部传参数进来,真的很恶心,不知道为什么只能
		 * 为之写一个单独的函数
		 *
		 */
		public function init():void			
		{
			var orn_id:int = 0;
			orn_id = application.parameters['store_id'];
			myService.url = "test.php?store_id=" + orn_id;
		}
		/*
		 * 处理结果函数,从数据库读出的数据,进行处理,安排其坐标所在的位置等,此函数将不断的优化
		 *
		 */
		private function resultHandler(event:ResultEvent, obj:component):void {
			if(obj.is_orn == true)	//根节点
			{
				partStore = event.result.stores.item;
		
				left = (application.width - WIDTH) / 2;
				top  = (application.height - HEIGHT) / 2;
				
				var root:component = new component();
				root.setRect(WIDTH, HEIGHT);
				root.move(left, top);
				root.setLable(partStore.getItemAt(0).name);
				root.id = partStore.getItemAt(0).id;
				root.is_orn = true;
				root.has_son = true; //partStore.getItemAt(0).has_son;
				root.addOnClickListener();
				root.setOpen();
				
				root.show();	

				var top_1:int = top;
				var top_2:int = top;
				var bom_3:int = top;
				var bom_4:int = top;
				
				for(var i:int=1; i < partStore.length; i++)
				{
					var vl:component = new component();
					
					vl.is_orn = false;
					vl.f_obj  = root;
					
					root.s_objs.addItem(vl);
					
					vl.setRect(WIDTH, HEIGHT);
					vl.setLable(partStore.getItemAt(i).name);
					vl.id	  = partStore.getItemAt(i).id;
					vl.has_son = partStore.getItemAt(i).has_son;

					if(partStore.getItemAt(i).has_son == true)
					{
						vl.setHasSon();
					}
					
					switch(i % 4)
					{
					case 1:		//位置第一象限
						{
							vl.director = -1; 	//left
							top_1 = top_1 - margin - HEIGHT; 
							vl.move(left - margin - WIDTH, top_1);
							break;
						}
					case 2:		//位置第二象限
						{
							vl.director = 1; 	//right
							top_2 = top_2 - margin - HEIGHT; 
							vl.move(left + margin + WIDTH, top_2);
							break;
						}
					case 3:		//位置第三象限
						{
							vl.director = -1; 	//left
							bom_3 = bom_3 + margin + HEIGHT; 
							vl.move(left - margin - WIDTH, bom_3);
							break;							
						}
					case 0:		//位置第四象限
						{
							vl.director = 1; 	//right
							bom_4 = bom_4 + margin + HEIGHT; 
							vl.move(left + margin + WIDTH, bom_4);
							break;								
						}
					}
					
					vl.drawLine(vl.f_obj.m_left, vl.f_obj.m_top);
					vl.addMouseMoveListener();
					vl.addMouseDownListener();
					if(vl.has_son == true)
					{
						vl.addOnClickListener();
					}
					vl.show();

				}
			}
			else
			{
				//非根节点展开时的逻辑
				partStore = event.result.stores.item;
				if(myVl.director == -1)		//left
				{
					var left:int = myVl.m_left -  WIDTH - margin;
				}
				else						//right
				{	
					var left:int = myVl.m_left + WIDTH + margin;
				}
				var top_5:int = myVl.m_top;
				var bom_5:int = myVl.m_top;
				
				for(var i:int = 1; i < partStore.length; i ++)
				{
					var vl:component = new component();
					
					vl.is_orn = false;
					vl.f_obj  = myVl;
					
					vl.setRect(WIDTH, HEIGHT);
					vl.setLable(partStore.getItemAt(i).name);
					vl.id	  = partStore.getItemAt(i).id;
					vl.has_son = partStore.getItemAt(i).has_son;

					if(partStore.getItemAt(i).has_son == true)
					{
						vl.setHasSon();
					}
					vl.director = myVl.director;
					
					switch(i % 2)
					{
					case 1:
						top_5 = top_5 - margin - HEIGHT; 
						vl.move(left, top_5);
						break;
					case 0:
						bom_5 = bom_5 + margin + HEIGHT; 
						vl.move(left, bom_5);
						break;
					}
					
					vl.drawLine(vl.f_obj.m_left, vl.f_obj.m_top);
					vl.addMouseMoveListener();
					vl.addMouseDownListener();
					if(vl.has_son == true)
					{
						vl.addOnClickListener();
					}
					myVl.s_objs.addItem(vl);

					vl.show();
				} 
			}
		}
		]]>
	</mx:Script>

<mx:HTTPService id="myService" result="resultHandler(event, myVl)"/>

</mx:Application>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -