Что вам нужно сделать, это зафиксировать движение мыши пользователя, когда он перетаскивает мувиклип.
Сначала создайте переменную isDragging var isDragging:Boolean = false;
и установите для нее значение true, если мышь нажата, и false, когда мышь вверх.
Затем добавьте прослушиватель событий MouseEvent.MOUSE_MOVE на временную шкалу линии
addEventListener(MouseEvent.MOUSE_MOVE, function (e:MouseEvent):void
{
if (isDragging) {
drawConnectiveLine(mc1, mc2);
}
return;
});
Метод drawConnectiveLine
обновит векторную форму линии для перемещения в {x, y} фрагментов ролика.
function drawConnectiveLine(d:DisplayObject, d2:DisplayObject):void {
mc.graphics.clear();
mc.graphics.lineStyle(2,0);
mc.graphics.moveTo(d.x,d.y);
mc.graphics.lineTo(d2.x,d2.y);
}
Изменения в уже существующем скрипте:
var isDragging:Boolean = false;
var mc:MovieClip = new MovieClip();
mc.graphics.lineStyle(2,0);
mc.graphics.moveTo(mc1.x,mc1.y);
mc.graphics.lineTo(mc2.x,mc2.y);
addChild(mc);
mc1.addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEvent):void
{
isDragging = true;
e.currentTarget.startDrag();
});
mc1.addEventListener(MouseEvent.MOUSE_UP, function (e:MouseEvent):void
{
isDragging = false;
e.currentTarget.stopDrag();
});
mc2.addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEvent):void
{
isDragging = true;
e.currentTarget.startDrag();
});
mc2.addEventListener(MouseEvent.MOUSE_UP, function (e:MouseEvent):void
{
isDragging = false;
e.currentTarget.stopDrag();
});
addEventListener(MouseEvent.MOUSE_MOVE, function (e:MouseEvent):void
{
if (isDragging) {
mc.graphics.clear();
mc.graphics.lineStyle(2,0);
mc.graphics.moveTo(mc1.x,mc1.y);
mc.graphics.lineTo(mc2.x,mc2.y);
}
});