PDA

Просмотр полной версии : Отслеживание из root вхождения в n-й фрейм прикрепленного клипа


Ozric
06.09.2005, 11:26
К root прикрепляю клип movieClip.
Запускаю его воспроизведение.

Можно ли отследить из root когда будет воспроизводиться n-й фрейм клипа movieClip? Как это сделать? Подскажите пожалуйста хотя бы примерно про что почитать.

То есть из кода который располагается в root нужно узнать когда будет воспроизводиться этот фрейм и сразу после этого запустить какие-то инструкции.

Ozric
06.09.2005, 12:31
Ладно )
Я знаю, что мне нужно "подождать" пока проиграются 14 кадров клипа.

Если я использую в root соответствующую задержку с помощью setinterval, то все будет синхронизировано (действия после задержки в root совпадут с вхождением в 14-й фрейм клипа)?

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

iNils
06.09.2005, 12:52
setInterval тебе тут не помошник.
------------------
_root.onEnterFrame = function (){
if(_root.mc._currentframe==14){
trace ("14 кадр наступил"):
}
}
-----------------

_root.mc - это твой клип

Ozric
06.09.2005, 13:04
Спасибо, понял.
А можно это сделать без EnterFrame?
Мне проверку нужно делать в функции.
Сорри что сразу не написал :rolleyes:

Ozric
06.09.2005, 15:50
up :)

помогите пожалуйста - только это осталось для того чтобы доделать.. :rolleyes:

Бармалей
06.09.2005, 16:36
а функция у тебя чем вызывается, setInterval-ом?

Ozric
06.09.2005, 17:00
нет, функция вызывается в root при нажатии на кнопку
(кнопка приаттачена к root)

iNils
06.09.2005, 17:58
засунь этот код в твою функцию, но работать соответственно будет только когда ты на кнопку нажал
if(_root.mc._currentframe==14){
trace ("14 кадр наступил"):
}

Ozric
06.09.2005, 18:27
Не работает.

При нажатии кнопки запускается воспроизведение:
_root.mc.gotoAndPlay(1);
Далее нужно отследить когда воспроизведение достигнет n-го кадра _root.mc и после этого сразу запустить следующий код.

iNils, при твоем совете получается так:
function Abc() {
_root.mc.gotoAndPlay(1);
if(_root.mc._currentframe==14){
trace("14 кадр наступил");
}
}
"14 кадр наступил" не появляется.

Double
06.09.2005, 18:43
ну и в чём проблема? проц грузить не хочешь, пока кнопка не нажата? делай так, как сказал iNils. если кнопку не нажмут, 14 кадр и не проиграется. кнопка-то тут тебе чем помешала? её присутствие тебя смущать не должно.

Ozric
06.09.2005, 18:47
Проблема в том, что при нажатии кнопки надпись "14 кадр наступил" не появляется. То есть я нажимаю кнопку, запускается _root.mc и отслеживание не выполняется.

PITer
06.09.2005, 21:55
у меня это работает

Ozric
07.09.2005, 00:01
PITer, спасибо.
С onEnterFrame iNils уже объяснил как делать.
Мне нужно узнать как обойтись без этого.. :confused:

Art-dir
07.09.2005, 00:46
у меня такое смутное ощущение, что вам проще перетасовать алгоритм...

Ozric
07.09.2005, 11:28
Неужели нет возможности поставить цикл (кроме onEnterFrame), который бы не грузил процессор (как while) и выполнялся бы произвольное количество времени до положительного результата проверки? :(

iNils
07.09.2005, 11:47
Неужели нет возможности поставить цикл (кроме onEnterFrame), который бы не грузил процессор (как while) и выполнялся бы произвольное количество времени до положительного результата проверки? :(
Там слишком просто onEnterFrame чтобы он грузил проц
Есть еще вариант. Внутри того клипа в котором ты пытаешься отловить 14 кадр, на 14 кадре повесь сообщение о том что кадр 14 проигрывается.

Ozric
07.09.2005, 12:07
iNils, я говорил о том что while грузит проц.
onEnterFrame не грузит, но он не подходит..

Есть еще вариант. Внутри того клипа в котором ты пытаешься отловить 14 кадр, на 14 кадре повесь сообщение о том что кадр 14 проигрывается.
А как это сделать? и как отслеживать это сообщение в функции в root?
Просто я не знаю что читать про это. Если не трудно, скажи :rolleyes:

Ozric
07.09.2005, 14:10
всем сорри :(
я долго и жестко тупил..

засунул действия которые нужно выполнять на 14-й кадр клипа
все заработало :)

тему можно закрыть