![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2010
Сообщений: 19
|
эх, как всегда - понимаю, что решение совсем простое, но что-то ничего в голову не приходит
![]() Вопрос такой: каким образом сделать таймер(т.е. функцию, вызывающую себя каждый фрейм), но чтобы он был в клипе, который мы можем брать или не брать из библиотки. Суть в том, что на этот таймер не хочется тратить даже одной функции мэйнкода. Т.е. таймер должен быть абсолютно автономен от главного кода(это было бы не сложно, если бы он всег присутствовал на экране, тут помогло бы "onClipEvent (enterFrame) {"), но он может и не присутствовать, а никаких проверк из когда в главном кадре, типа "if (timerOnStage){" не хочется делать. В общем, суть такая - нужно сделать абсолютно независимый клип-таймер. Подскажите идейку какую, а ? ![]() |
|
|||||
|
Войди в клип два раза клинкув по нему и в первом кадре пиши нужны код, например:
|
|
|||||
|
Модрон-ветеринар
|
Цитата:
Минусов полно: - с точки зрения организации проекта: спрятанный куда-то код - всегда плохо. - с точки зрения удобства вычислений - нецелесообразно, все равно нужно аттачить мувик из библиотеки - при аттаче из библиотеки - это все равно задержка, плеер чуть-чуть, но лаганет. Меньше, чем пр загрузке с помощью MCL, но асинхронность все равно будет - проверено. - если есть прелоадер в 1-м кадре - нужно организовать экспорт библиотечного клипа не в 1-й, а во второй кадр - даже вес ролика немного больше будет. Напишите простую функцию где-нибудь в конце, и используйте ее без любых проверок. function manageTimer (dir:String) { switch (dir) { case 'on': this.createEmptyMovieClip('timer_mc', this.getNextHighestDepth()); timer_mc.onEnterFrame = function () { trace('тик-так'); }; break ; case 'off': timer_mc.removeMovieClip(); break ; } } Последний раз редактировалось mooncar; 20.01.2010 в 03:11. |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 19
|
Ага, Samana - огромное спасибо !
Я пытался использовать: onClipEvent (enterFrame){ ![]() } mooncar, тут всё просто - например, этот код выполняется для 100 уровней, пусть игры, и всего на одном - нужен этот таймер. и что теперь ? в 99 случаях, бесмысленно обращаться к тесту ~if(timerPresence == true) ? А если нужен не таймер, а подобная функция, да ещё подключаться не одна ? но действительно в пропорции 1 к 99 "бесмысленных" вызовов ? В общем, резон мне кажется есть ![]() Ваше предложение с manageTimer ('on'); тоже весьма интересно, обязательно подумаю над такой техникой на будущее. Спасибо. |
|
|||||
|
Модрон-ветеринар
|
Не вдаваясь в логику вашего проекта, проверки какие-то или что-то там, замечу:
- что вам что аттачить ваш мувк-таймер из библиотеки, что писать manageTimer('on'); - все равно нужно явно в коде писать. - что вам ремувать приаттаченный мувик, что писать manageTimer('off') - опять нужно явно указать. (Если вы приаттачили мувик в каком-то кадре, он у вас так и будет висеть, пока вы его не удалите явно, в какой бы кадр вы не перешли. Это я к тому, чтобы вы не уповали на "автоматизм".) Так что вам все равно придется что-то сообщать плееру по поводу таймера, только в моем случае меньше всяких затрат и почвы для глюков от асинхронности. И я не очень понял, при чем тут 99 вызовов. Вы вызываете функцию только когда нужно. PS. Я кажется понял. Не путаете ли вы определение функции с ее вызовом? И отсюда может эти слова по поводу "траты" кода... Если у вас мувик с функцией находится в библиотеке, и вы намереваетесь его аттачить при исполнении, значит мувик должен быть экспортирован. В любом случае ваша функция будет скомпилирована, находится ли она в "мэйнкоде", или спрятана в экспортируемеый из библиотеки мувик. Не верите - проверьте. Создайте мувик, запишите в нем код с ошибкой, удалите его со сцены и сделайте его в библиотеке экспортируемм для AS. При компиляции у у вас появится ошибка. Снимите галочку экспорта, напишите любой бред в этом мувике - и компилятор ничего не заметит, так как мувик в ролик не попадает. Последний раз редактировалось mooncar; 23.01.2010 в 03:58. |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:19. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|