1-й
Если вы подразумеваете под "следование по своему пути", что объект следует за другим объектом, то просто выполните
obj2.x = obj1.x;
obj2.y = obj1.y;
, чтобы следовать точным координатам.Если вы хотите сделать некоторое расстояние между ними, то
obj2.x = obj1.x + dx;
obj2.y = obj1.y + dy;
выберите dx и dy в соответствии с вашими желаниями.
2nd
Если вы хотите создать приложение,где вы можете «нарисовать стрелку» или «нарисовать путь», а затем объект должен следовать за ней, затем вы можете попытаться сохранить координаты мыши, при этом «нарисовать стрелку», а затем привязать нужный объект к этим координатам.
var coordinates:Array = [];
stage.addEventListener("mouseDown", md);
function md(evt:*):void
{
//empty the coordinates
coordinates = [];
//add listener when mouse is released
stage.addEventListener("mouseUp", mu);
//add a listener for enterframe to record the mouse's motion
addEventListener("enterFrame", recordMouse);
}
function mu(evt:*):void
{
stage.removeEventListener("mouseUp", mu);
removeEventListener("enterFrame", recordMouse);
//snap the object to the drawn line and play it
addEventListener("enterFrame", playRecording);
}
function recordMouse(evt:*):void
{
coordinates.push(new Point(stage.mouseX, stage.mouseY));
}
function playRecording(evt:*):void
{
//snap object to the recorded coordinates
myObject.x = coordinates[0].x;
myObject.y = coordinates[0].y;
//delete first element of array
coordinates.splice(0, 1);
//stop playing if there are no more points
if(coordinates.length == 0) removeEventListener("enterFrame", playRecording);
}
Поместите видеоклип на сцену и назовите его myObject.Затем добавьте код и скомпилируйте swf.
Кроме того, во время «записи» координат вы также можете нарисовать несколько линий.
Измените функцию md следующим образом:
function md(evt:*):void
{
//empty the coordinates
coordinates = [];
//add listener when mouse is released
stage.addEventListener("mouseUp", mu);
//add a listener for enterframe to record the mouse's motion
addEventListener("enterFrame", recordMouse);
//clear graphics, and initialize line
with(graphics) clear(), lineStyle(1, 0xff0000), moveTo(stage.mouseX, stage.mouseY);
}
и запишите это.
function recordMouse(evt:*):void
{
coordinates.push(new Point(stage.mouseX, stage.mouseY));
//draw the line
with(graphics) lineTo(stage.mouseX, stage.mouseY);
}
3-й
Если вы хотите следовать предварительно нарисованной линии, то у вас есть несколько вариантов в зависимости от вашей задачи.Но все зависит от того, как именно вы хотите «привязать» свой объект.