我试图在flash as3中使用一个输入框架事件来在父屏幕和子剪辑之间绘制一条线,因为它们在屏幕上被拖动或移动。其实,我有这个工作使用下面的代码:flash as3 - 获取父剪辑相对于孩子位置的位置
/*private function drawLine(childCircle,parentCircle):void
{
parentCircle.graphics.clear();
parentCircle.graphics.lineStyle(lineWeight,lineColor);
parentCircle.graphics.moveTo(0,0);
parentCircle.graphics.lineTo(childCircle.x,childCircle.y);
}*/
但问题是多个子圈可以从父被创建,所以上面的函数清除出从父行至第一个孩子赞成从父母向第二个孩子绘图。所以我想我需要将该行添加到孩子圈而不是父级,但是当我这样做时,我无法获得父级圈相对于孩子的正确坐标。这是我的代码:
private function drawLine(childCircle,parentCircle):void
{
//trace (parentCircle.x + "|" + childCircle.x);
childCircle.graphics.clear();
childCircle.graphics.lineStyle(lineWeight,lineColor);
childCircle.graphics.moveTo(0,0);
childCircle.graphics.lineTo(parentCircle.x,parentCircle.y);
}
任何人都知道我该怎么做?我看到了globalToLocal和localToGlobal的函数,但我不想要全局位置 - 只是一个位置上的位置。我尝试这样做:
private function drawLine(childCircle,parentCircle):void
{
trace (parentCircle.x + "|" + childCircle.x);
childCircle.graphics.clear();
childCircle.graphics.lineStyle(lineWeight,lineColor);
childCircle.graphics.moveTo(0,0);
childCircle.graphics.lineTo(-childCircle.x,-childCircle.y);
}
,并在正确的位置结束了,但它会导致一个问题,我使用的,因为该行是拴在孩子夹,而不是家长的阻力,便于方程。