Я пытаюсь использовать событие ввода кадра во 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);
}
и он оказывается в правильном месте, но это вызывает проблему в используемом мною уравнении перетаскивания, потому что линия привязана к дочернему клипу, а не к родительскому.