То ли, действительно, никто тут не работал с этим методом, то ли не хотите признаваться) Если кого интересует - вот решение, к которому я пришел:

Код AS3:
vDirection = new Point(destination.x -x, destination.y -y); // создаем вектор движения к цели, когда объект должен начать двигаться
protected function Move():void
{
if (vDirection != null)
{
var angle:Number; // угол результирующего вектора
var vector:Point = new Point(); // временный вектор
if (collided.length > 0) // здесь проверяется длина списка, содержащего все объекты-препятствия на сцене
{
var i:int;
var result:Point; // результирующий вектор
var L:Number; // длина рез. вектора
result = new Point(destination.x -x, destination.y -y); // создаем рез. вектор, равный вектору направления
L = Math.sqrt(result.x * result.x + result.y * result.y); // вычисляем длину рез. вектора
// нормализуем рез. вектор
result.x /= L;
result.y /= L;
if (L == 0)
{
result.x = 1;
result.y = 1;
}
for (i = 0; i < collided.length; i++)
{
var e:Entity = collided[i] as Entity;
// пробегаемся по списку и выбираем те объекты, которые попадают в радиус действия сил,
// у меня это константа COLLIDE_RADIUS и равна 2, т.е. просчет начинается почти вплотную
if (distanceFrom(e, true) <= COLLIDE_RADIUS)
{
var dist:Number = distanceFrom(e, true);
// вычисляем силу отталкивания обратно пропорциональную расстоянию
// эффект будет заметен при бОльших значениях COLLIDE_RADIUS, чем 2
var magnitude:Number = (speed * COLLIDE_RADIUS -speed * dist) / (speed * COLLIDE_RADIUS);
// создаем вектор противодействующей силы
var force:Point = new Point((x -e.x), (y -e.y));
var len:Number = Math.sqrt(force.x * force.x + force.y * force.y) /magnitude;
// нормализация
force.x /= len;
force.y /= len;
if (len == 0)
{
force.x = 1;
force.y = 1;
}
// складываем результирующий и противодействующий вектора
result.x += force.x;
result.y += force.y;
}
}
vector.x = result.x;
vector.y = result.y;
}
else
{
vector.x = vDirection.x;
vector.y = vDirection.y;
}
// угол вектора в радианах
angle = Math.atan2(vector.y, vector.x);
// ну и задаем движение
x += speed * Math.cos(angle);
y += speed * Math.sin(angle);
}
}
Если кто-то знает решение проще или может оптимизировать данное - буду только рад
