Script Treeeeeeeeeeeeeee Tech (请勿私自转载本文)
********************************************************

********************************************************
Action script for (mc)Spot Frame1
----------------------------------------------------------
var children =new Array ();
当MC被attach后,经过第一侦。它的chidlren数组就被建立了。这个时候children是空的。
而以后,每当在这个mc新加一个节点的时候,就给它的children数组新增一个元素,记录刚刚新增的节点(一个节点,即为一个mc)。
那么每新增一个节点,我们到底要做多少工作呢?read this function:
function createChild(){
var newID=this._name+"_"+this.children.length 产生新节点的name
//注意:在这个脚本里面this.children.length经常用到。因为Array.length比Array的最大下标大1。这样就保证新增的不会跟前面的重复。
this.attachMovie("spot",newID,this.children.length);
with(evil(newID)){
//这个with似乎不太必要,不过考虑以后如果需要修改多个属性,先把框架在这打好吧。
_y=87;// 87=Math.round(80+16.5/2) (线长80,圆的直径16.5)
}
children[this.children.length]=evil(newID);
//在children数组中新增一个元素记录刚刚attach的新节点。这里用children.push()也许更正规一点。
注意:这个evil使children记录的是直接指向mc的引用。而不是ID.这样方便以后调用。
//写出下面这段代码需要动一翻脑筋。
每新增一个节点的时候,需要调整与该节点处于同一级的所有节点的位置,准确的说是旋转角度.而且这个过程应该是动态的连续的,而不是直接从起始位置跳到目标位置.(吃饭了,待续)
evil(newID).onEnterFrame=function (){
var cl=this.children.length;
for(var i=0;i
var tr=Math.round((180 / cl)*(i+0.5)-90);
if (this.children[i]._rotation>tr) this.children[i]._rotation--;
else if(this.children[i]._rotation }
};
}