📄 valuelinker.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 + -