[转]多个Sprite的层次问题

AS2以前depth是可以随意设置的,负数都可以。AS3改成显示列表后,虽然某些方面是方便了,诸如插入这类操作,速度也快了,但在处理多个物品的相对层次又不好办了。

想了想,应该是要改变思路。其实也不能叫改变思路,像计算3维层次之类,本来就有一个Z轴排序的概念。

不是直接设置它的层次,而是统一进行一次排序。


private function _sortDepth():void{
   var _bo1:Boolean;
   var _bo2:Boolean;
   for (var _i = 0; _i < totalImgNum - 1; _i++){
    for (var _j = _i+1 ; _j < totalImgNum; _j++){
     _bo1=(Math.cos(cards[_i].degree*Math.PI/180)>Math.cos(cards[_j].degree*Math.PI/180))//排序依据,这里是一个圆形菜单,根据角度的cos值决定层次
     _bo2=getChildIndex(cards[_i])>getChildIndex(cards[_j]);
     if (_bo1!=_bo2){
      swapChildren(cards[_i],cards[_j]);
     }
    }
   }
  }



在此备案吧。

你可能感兴趣的:(J#)