Flash. Как плавно переместить MovieClip?

Varvara2002

Есть несколько MovieClip. Сами по себе они просто некоторые картинки.
Хочется, чтобы они плавно переместились в какие-то заданные координаты.
Как это сделать?
Просто вызвать ф-ю, в которой в цикле координаты изменяются, не получается, так как
просто отрисовывает конечное положение. updateAfterEvent не помогает. Пробовал
setInterval, но как-то тоже безрезультатно.

Andr163


a_mc._x = 100;
a_mc._y = 100;
var intMov = setInterval (moving, 10);
function moving
{
a_mc._x += 1;
a_mc._y += 1;
if (a_mc._x == 200)
clearInterval (intMov);
}

Helga87

Пусть у нас клип, который надо переместить называется ufo, и начало движение осуществляется по нажатию на кнопочку. Тогда обработчик нажатия на кнопку может выглядеть так:
on (click)
{
var f : Function = function(obj)
{
trace("i=" + obj.i);
obj.i++;
if (obj.i > obj.count)
{
clearInterval(obj.id);
return;
}
_root.ufo._x -= 1;
_root.ufo._y -= 1;
}
var obj = { i:0, count:30 }
obj.id = setInterval(f, 30, obj);
}

лежат .fla и .swf файлы

Varvara2002

Странно, но у меня такое дело не работает, как ни старался.

Varvara2002

Тупой язык.
Вся проблема была в том, что он реально не изменял координаты.
Пришлось указывать явно, что все переменные Number

durka82

В данном случае проблема в том, что отрисовка происходит только при переходе в другой кадр таймлайна.
То есть после каждого изменения координат нужно перейти в другой кадр таймлайна.
Обычно это делается так: делается два кадра - в первом меняются координаты, а во втором осуществляется переход в первый.
По крайней мере так это работало в 4/5 версиях.
Оставить комментарий
Имя или ник:
Комментарий: