PDA

Просмотр полной версии : Отслеживание программного tween


Oreanor
06.06.2006, 15:46
Вопрос в следующем - можно ли как-то отследить окончание програмного твина, чтобы произвести после этого еще какие-то действия? я имею в виду вот такую примерно конструкцию:


import mx.transitions.*;
import mx.transitions.easing.*;
var moving = new mx.transitions.Tween(mc, "_x", Elastic.easeOut, 0,200,40);


Понятно что она будет идти сорок кадров, и первое что приходит в голову - сделать счетчик в onEnterFrame и по достижении им 40 производить дальнейшие действия.

Но может быть есть какой-то более простой и грамотный способ?

iNils
06.06.2006, 15:49
А в хелпе не судьба посмотреть события Tween?

Tween.onMotionFinished

Oreanor
06.06.2006, 15:55
блин... мне стыдно! ;)
не смог найти нужной инфы в хелпе.

iNils, спасибо.

ЗЫЖ Ув.модераторы, если снесете топик, я не обижусь.

Nirth
06.06.2006, 16:07
есть еще событие onMotionChanged которое вызываеться, при каждом изменении.
есть свойство position, которое хранит в себе текущую позицию, цели твина.

Oreanor
06.06.2006, 16:16
ага, спасибо, я уже нашел все это. Эх, сколько всего я, оказывается, делал чуть ли не каменным топором ;) На порядок анимать проще этими штуками.

MyXus
06.06.2006, 19:42
Мдаа.. а я уж хотел собственный isPlaying писать..

MyXus
09.06.2006, 20:23
А не программный твин, рукодельный, никак нельзя подцепить? Чёт не могу найти к нему хода..

Nirth
09.06.2006, 20:26
_currentframe
_totalframes

MyXus
09.06.2006, 21:39
Я имел ввиду событие типа onMotionFinished
Собственное эт както..
Вот такая вот простая схема for(i=0;i<100;i++) {
setInterval(function() { for(j=0;j<100;j++) { j=j; } }, 10);
}выполнення 1 раз в начале мувика ооч сильно тормозит его. Раза в 3.
Или вот такая схемаfor(i=0;i<1000;i++) {
setInterval(function() { for(j=0;j<1;j++) { j=j; } }, 10);
}
Ищу вот вариант попрощще.

Nirth
09.06.2006, 22:09
я не понял твоей схемы

iNils
09.06.2006, 22:32
я не понял твоей схемы
Он хочет не в три раза затормозить его, а в больше, но ищет как это сделать проще. :D

Nirth
09.06.2006, 22:55
Он хочет не в три раза затормозить его, а в больше, но ищет как это сделать проще.

имхо это уже не схема а план.

2Михус, а что мешает тебе повесить на он интерферейм обработчик события..и если _currentframe == _totalframes то значит анимация кончилась ( если у тебя есть циклические, можно туда еще доп параметр ввести, вобщем это дело техники)

MyXus
09.06.2006, 23:41
Проклятье, всё время забываю про этот обработчик :)
Спасибо )

MyXus
09.06.2006, 23:45
Необходимо отметить, что я сделал еще более экономный с точки зрения ресурсов вариант (незнаю как насчет его принципиальной корректности).
Мувик с анимацией - он же класс. В нужном кадре выставлен код, который меняет нужный флажок \ вызывает нужный обработчик внутри класса.

Nirth
09.06.2006, 23:59
тебе нужно было написать :
"Считаю необходимым известить вас..." =)

MyXus
10.06.2006, 00:15
:-) :-)

Usnul
10.06.2006, 00:39
могу выложить свой Tween, недавно писал, там только трансляция и никаких методов изменения твина на лету. Зато ресурсов ест минимум =)

Nirth
10.06.2006, 01:03
выложи, но лучше в отдельную тему, с явным названием ( я все о поиске забочусь )

MyXus
11.06.2006, 17:17
выложил?

iNils
11.06.2006, 17:19
выложил?
http://www.flasher.ru/forum/showthread.php?t=81021