l2.isTime = true;
function levelResetFun(e:Level2DEvent){
trace(l2.getDisplay("x"));//获取当前所有对象的x属性
trace(l2.getDisplay({y:0,x:0}));//获取当前所有对象,xy属性都等于0的对象
/**
*输出:
*137,0,229
*[object MovieClip]
*/
}
mc1.addEventListener(MouseEvent.MOUSE_DOWN,funa);
mc2.addEventListener(MouseEvent.MOUSE_DOWN,funa);
mc3.addEventListener(MouseEvent.MOUSE_DOWN,funa);
mc1.addEventListener(MouseEvent.MOUSE_UP,funb);
mc2.addEventListener(MouseEvent.MOUSE_UP,funb);
mc3.addEventListener(MouseEvent.MOUSE_UP,funb);
function funa(e:MouseEvent):void{
e.target.startDrag();
}
function funb(e:MouseEvent):void{
e.target.stopDrag();
}Level2D源代码:
CODE:
package index.com.truss{
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
import flash.events.Event;
import flash.display.DisplayObjectContainer;
import flash.display.DisplayObject;
import index.com.events.Level2DEvent;
public class Level2D implements IEventDispatcher{
private var dispatcher:EventDispatcher;
private var _range:DisplayObjectContainer;
public function Level2D(range_:DisplayObjectContainer){
dispatcher = new EventDispatcher(this);
_range = range_;
}
//重排
public function reset():Array{
var tmpAr:Array = getDisplay();
var getYAr:Array = getDisplay("y");
var addYAr:Array = getYAr.concat().sort(16);
if(getYAr.toString() != addYAr.toString()){
inOrder(tmpAr.sortOn("y",16));
//发布层级改变事件
dispatcher.dispatchEvent(new Level2DEvent(Level2DEvent.LEVEL_RESET));
}
getYAr = addYAr = null;
return tmpAr;
}
//返回当前范围所有对象
public function getDisplay(arg:Object = null):Array{
var i:int;
var tmpAr:Array = new Array;
var num:int = _range.numChildren;
if(arg == null){
for(i = 0; i < num; i ) tmpAr.push(_range.getChildAt(i));
}else if(arg is String){
for(i = 0; i < num; i ) tmpAr.push(_range.getChildAt(i)[arg]);










