PDA

Просмотр полной версии : Прерывание траектории движения


Randomizer
16.05.2009, 22:35
Помогите понять, как это реализуется:

Есть объект птица. Она летает по кругу (motion tween) циклично. По нажатию на кнопку нужно что бы птица улетала в другом направлении.

Если делать через motion tween, то прерывание тракетории движения будет грубым т.к. я могу прервать его в любой момент.

вот наглядная демонстрация проблемы http://dmitryveselov.ru/prerivanie.zip

simplenoize
16.05.2009, 22:58
Не понятна задача.
В каком направление ей улетать?
если нужно чтобы птица срывалась с коородинаты, в которой она находится в тот момент когда жмешь кнопку, то:

my_buttom.onRelease = function(){
tochka_zapulivaniya = 200;
onEnterFrame = function(){
bird._y += (tochka_zapulivaniya-bird._y)/6;
bird._x += (tochka_zapulivaniya-bird._x)/6;
}
}


PS и не пиши код на мувике, пиши в одном кадре удобнее будет. Здесь на форуме отличный фак и хелп на русском есть.

Randomizer
16.05.2009, 23:37
спасибо. а за что отвечает: tochka_zapulivaniya = 200; ?

simplenoize
17.05.2009, 17:09
Конечная станция полета птички)

Randomizer
17.05.2009, 22:38
эм.... а эта точка она по оси х или у ?))

Добавлено через 15 часов 15 минут
ааауу?))

Stargazer
18.05.2009, 17:40
Просто прочтите как работает onEnterFrame и вам станет понятно что делать.
Ещё я могу предложить по нажатию кнопки останавливать одну анимацию и запускать другую.

nOobCrafter
18.05.2009, 17:44
simplenoize улыбнуло ;)
Randomizer да)) это походу просто точка с координатой 200, 200) можно изменить на что хошь

Randomizer
18.05.2009, 19:13
Просто прочтите как работает onEnterFrame и вам станет понятно что делать.
Ещё я могу предложить по нажатию кнопки останавливать одну анимацию и запускать другую.

ойой) вот было бы супер! подскажите плиииз:yahoo:

Stargazer
18.05.2009, 19:28
ойой) вот было бы супер! подскажите плиииз:yahoo:

Очень просто. Никакой новой техники.
1. Делаете анимацию птички (например, она машет крыльями вверх-вниз).
2. Делаете анимацию улетания этой птички.
3. Теперь делаете ещё один клип, который объединяет поведение первых двух. То есть - на первом кадре размещаете анимацию п.1 (и ставите стоп). На втором кадре размещаете анимацию улетания.
4. Клип из п.3. используете как элемент для анимации летания по кругу.

Когда нужно перейти к улетанию - остановите анимацию клипа (п.4) и перейдите на второй кадр клипа (п.3).

Randomizer
18.05.2009, 19:55
Жесть) я думал можно программно решить вопрос) но спасибо anyway =)

Stargazer
18.05.2009, 20:09
Где жесть?
Можно, конечно, и программно, но я не вижу у этого способа никаких недостатков.

Один из вариантов программной реализации был подсказан выше. Если хотите - можете сделать движение не равномерным, а по какой-то функции. Если хотите - можете и сам круговой полёт тоже сделать программно - тогда будет легко сделать плавный переход между полётом и улетанием. Вопрос в целесообразности.