你可以試試這個,它適合我的情況下(當所有你要做的就是修改秤/ X/Y /旋轉屬性),但使用變換矩陣時可能無法正常工作。
function changeParent(displayObj:DisplayObject, newParent:DisplayObjectContainer, depth:Number = -1, retainRelativeSize:Boolean = false):void {
var tmpParent:DisplayObjectContainer = displayObj.parent;
while (tmpParent) {
displayObj.scaleX *= tmpParent.scaleX;
displayObj.scaleY *= tmpParent.scaleY;
displayObj.rotation += tmpParent.rotation;
tmpParent = tmpParent.parent;
}
tmpParent = newParent;
while(tmpParent){
displayObj.scaleX = displayObj.scaleX/tmpParent.scaleX;
displayObj.scaleY = displayObj.scaleX/tmpParent.scaleY;
displayObj.rotation -= tmpParent.rotation;
tmpParent = tmpParent.parent;
}
var point1:Point= displayObj.localToGlobal(new Point());
var point2:Point = newParent.globalToLocal(point1);
if (depth >= 0) {
newParent.addChildAt(displayObj, depth);
}else {
newParent.addChild(displayObj);
}
displayObj.x = point2.x;
displayObj.y = point2.y;
}
謝謝!這對我有效,但這不是我想要得到的答案。 –
再次感謝您的回答。我發佈了我自己的答案。也許它對你有用。 –