Flash/AS3 zindex <2>

承上一篇
3)欲以物件的某個參考值當作 Depth
將 Display Object 和 Depth (參考值) 做成 Object
所有 Object 做成 Object Array, 就可以用 sortOn 幫你排
FLA 原始檔

var numObj:int = 12;
var dang:Number = Math.PI*2/numObj;
var xr:int = 200;
var yr:int = 20;
var shift:Number = 0;
var arObj:Array = [];
for (var i:int = 0; i < numObj; i++) {
 arObj[i] = new mc_star;
 this.addChild( arObj[i] );
}
this.addEventListener(Event.ENTER_FRAME, mEnterFrame);
function mEnterFrame(e:Event):void {
 var _mc:MovieClip;
 var ang:Number;
 var depth:int;
 var depthsRela:Array = [];
 for (var i:int = 0; i < numObj; i++) {
  ang = i*dang +shift;
  _mc = arObj[i] as MovieClip;
  _mc.x = xr*Math.cos(ang);
  _mc.y = yr*Math.sin(ang);
  _mc.scaleX = 0.8 + 0.2*Math.sin(ang);
  _mc.scaleY = _mc.scaleX;
  var blurN:Number = 4*(1- Math.sin(ang) );
  _mc.filters = [new BlurFilter(blurN, blurN, BitmapFilterQuality.HIGH)];
  // z-index 的參考值
  depth = Math.sin(ang)*1000;
  depthsRela.push({d:depth, mc:_mc});
 }
 // 排序
 depthsRela.sortOn("d", Array.NUMERIC);
 for (i=0; i < numObj; i++) {
  this.setChildIndex(depthsRela[i].mc, i);
 }
 shift += 0.01;
}

原文地址:https://www.cnblogs.com/bulolo/p/3084462.html