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

📄 component.as

📁 通过PHP读出数据库的记录内容
💻 AS
字号:
// ActionScript file
//自定义VL组件,用于实现拓扑图
package{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	
	import mx.collections.ArrayCollection;
	import mx.controls.Button;
	import mx.controls.Label;
	import mx.core.Application;
	import mx.core.UIComponent;
	import mx.messaging.messages.ErrorMessage;
	
	public class component {
		public var m_butt:Button;		//按钮点击
		public var m_labl:Label;		//显示信息用
		public var is_open:Boolean;		//表明是否被打开
		public var has_son:Boolean;		//是否有子节点
		public var m_left:int;			//位置左
		public var m_top:int;			//位置上
		public var m_width:int;			//宽度
		public var m_height:int;		//高度
		public var director:int;		//左还是右, 0 源, -1 左 ,1 右
		public var id:int;				//节点的ID
		public var f_obj:component;		//父亲节点的ID
		public var s_objs:ArrayCollection;		//子节点的ID, Reserved
		public var is_orn:Boolean;		//是否是root节点
		public var name:String;
		private var oldX:Number;					//鼠标拖动原X坐标
        private var oldY:Number;					//鼠标拖动原Y坐标
		
		/*
		 * 当鼠标拖动时,需要重新连线,对于一个节点来说需要重新连接此节点与父节点之间的连线
		 * 以及此节点的所有字节点之间的连线,方式是清除所有已存在的连线,重新连线
		 */
		public var UIComp:UIComponent;	//用于承放line控件
		public var line:Sprite;			//画线控件
		public var m_x:int;				//连线不动端的X坐标
		public var m_y:int;				//连线不动端的Y坐标
		
		public function component()
		{

			m_butt = new Button();
			m_labl = new Label();
			UIComp = new UIComponent();
			line   = new Sprite();
			s_objs = new ArrayCollection();
			
			is_open =  false;
			has_son = false;
			is_orn	= true;
			director = 0;
			m_left = 0;
			m_top = 0;
		}
		
		private function onMouseMove(event:MouseEvent):void{
            if(event.buttonDown){
                var x:Number = event.stageX - oldX;
                var y:Number = event.stageY - oldY;
                oldX = event.stageX;
                oldY = event.stageY;                
                move(m_left + x, m_top + y);  
                reDrawLine(f_obj.m_left, f_obj.m_top);
                /*
                 * 字节点重新划线
                 */    
                for(var i:int = 0; i < s_objs.length; i++)
                {
                	s_objs.getItemAt(i).reDrawLine(m_left, m_top);
                }
            }
        }
        /*
		 * 鼠标松下函数,停止拖动
		 *
		 */
        private function onMouseDown(event:MouseEvent):void{
            oldX = event.stageX;
            oldY = event.stageY;
        }
		/*
		 * 按钮点击函数,弹出新的店铺
		 *
		 */
		private function onClick(event:MouseEvent):void{
			if(is_open)		//打开状态时,可以收回
			{	
				//if(has_son == true)
				//{
					remove(this);
					setClose();
				//}
			}
			else			//请求新的数据
			{
				setOpen();
				Application.application.myVl = this;
				Application.application.myService.url = "test.php?store_id=" + id;
				Application.application.myService.send();
			}
		}
		/*
		 * 显示component
		 *
		 */		
		public function show():void{
			Application.application.addChild(m_butt);
			Application.application.addChild(m_labl);
			Application.application.addChild(UIComp);
		}
		/*
		 * 删除子控件
		 *
		 */
		private function remove(obj:Object):void {
			if(obj.has_son == true)
			{
                for(var i:int = 0; i < obj.s_objs.length; i++)
                {
                	remove(obj.s_objs.getItemAt(i));
                	
                	try { 
                		Application.application.removeChild(obj.s_objs.getItemAt(i).m_butt);
						Application.application.removeChild(obj.s_objs.getItemAt(i).m_labl);
						Application.application.removeChild(obj.s_objs.getItemAt(i).UIComp);
                	} catch (e:ErrorMessage) {
                		
                	}
                }
			}
		}
		public function setRect(width:int, height:int):void {
			m_width  = width;
			m_height = height;
			m_butt.width = width * 0.2;	//按钮和Label的宽度按照1:4划分
			m_butt.height = height;
			m_butt.move(0, 0);
			
			
			
			m_labl.width = width * 0.8;
			m_labl.height = height;
			
			m_labl.move(m_butt.width, 0);
			
		}
		
		public function setLable(arg:String):void
		{
			m_labl.text = arg;
		}
		
		public function setHasSon():void
		{
			has_son = true;
			m_butt.label = "+";		//后面优化成图片
		}
		
		public function move(left:int, top:int):void
		{
			m_left = left;
			m_top = top;
			m_butt.move(left, top);
			m_labl.move(m_butt.width + left, top);
		}
		
		public function setOpen()
		{
			is_open = true;
			if(has_son == true)
			{
				m_butt.label = "-";	//后面优化成图片
			}
			else
			{
				m_butt.label = "";
			}
		}
		
		public function setClose()
		{
			is_open = false;
			m_butt.label = "+";
		}
		
		public function drawLine(x:int, y:int):void
		{
			m_x	= x;
			m_y = y;
			line.graphics.lineStyle(1, 0x0099ff, 1);
			line.graphics.moveTo(m_left + m_width * 0.1 , m_top + m_height * 0.5);
			line.graphics.lineTo(x + m_width * 0.1, y + m_height * 0.5);
			UIComp.addChild(line);
		}
		
		public function reDrawLine(x:int, y:int):void
		{
			m_x = x;
			m_y = y;
			line.graphics.clear();
			line.graphics.lineStyle(1, 0x0099ff, 1);
			line.graphics.moveTo(m_left + m_width * 0.1 , m_top + m_height * 0.5);
			line.graphics.lineTo(x + m_width * 0.1, y + m_height * 0.5);
		}
		
		public function addMouseMoveListener()
		{
			m_butt.addEventListener(MouseEvent.MOUSE_MOVE, function(e:MouseEvent){onMouseMove(e)});
			m_labl.addEventListener(MouseEvent.MOUSE_MOVE, function(e:MouseEvent){onMouseMove(e)});
		}
		
		public function addMouseDownListener()
		{
			m_butt.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
			m_labl.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
		}
		
		public function addOnClickListener()
		{
			m_butt.addEventListener(MouseEvent.CLICK, onClick);
		}
	};
}

⌨️ 快捷键说明

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