Просмотр полной версии : Конфликт функции от события
willis83
23.04.2008, 20:41
Пару часов назад я задавал вопрос по исполнению кода в мувике с одним кадром, ответ дали исперпывающий и вот по ходу дела возник новый вопрос. В главной сцене есть несколько мувиков в которых по одному кадру, код в этих кадрах исполняется по событи onEnterFrame.
Но возникает ошибка т.к. в нескольких мувиках вызывается эта функция. Как я думаю ошибка заключается в том что из нескольких мест вызывается функция без имени onEnterFrame=function().....
Вопрос в том, как можно отличить эти функции друг от друга. Пытался прописать их ранее, а потом на событии вызывать функции по имени Пример:
function func1 {
..... some code..... };
onEnterFrame=func1();
Но данный код, хоть и не вызывает ошибки, результатов не приносит, подскажите в чём проблема.
func1 - это ссылка на функцию
func1() - это вызов функции
Написав
onEnterFrame=func1();Вы вместо ссылки на функцию, которую должен будет вызвать onEnterFrame, присвоили ему значение которое получено в результате выполнения этой функции.
willis83
23.04.2008, 20:50
Всё понял, убрав "()" всё заработало. Огромное спасибо.
willis83
23.04.2008, 21:17
Вообще интересная картина. Вышеописанную проблему я устранил, но тут из-за угла выпругнула новая: 2 этих мувика находятся на 2ух разных слоях главной сцены, и теперь работает мувик который находится на нижнем слою. Как только я их меняю местами, начинает работать предыдущий, а верхний не работает....
Не очень понял о чем вы, но ситуаця похожа на ту, когда два клипа имеют одинаковые имена.
willis83
23.04.2008, 21:37
Постараюсь описать проблему потребней... но всё же в кратце.
В главной сцене есть 2 слоя, в каждом слое по одному клипу. В каждом клипе по одному кадру, со следующим кодом:
function func1() {
text1 += 5 };
_root.createTextField(text1,1,0,0,5,5)
// прописываются параметры текста
onEnterFrame=func1;
Вот второй мувик на втором слое:
function func2() {
text2 += 5 };
_root.createTextField(text2,2,0,0,5,5)
// прописываются параметры текста
onEnterFrame=func2;
Опять же возникает кофликт, но уже похоже в depths, хотя их задаю разные. Посмотрите, может подскажите что не так.
P.S. Ко мне вполне можно обращаться на "ты", к тому же тут вы мне указываете что делать
function func2() {
text2 += 5 }; тут имелось ввиду text2._x += 5
P.S. конечно весь код вообщем-то условный, просто передал суть
В методе createTextField, первый аргумент - строка.
PS. На ты я общаюся только с теми, кто тут давно, а с остальными на вы, так как не все любят когда им тыкают. А запомнить исключение сложно - людей слишком много.
PPS. Когда хотите что-то добавить, используйте кнопку http://www.flasher.ru/forum/images/russian/style3/buttons/edit.gif и редактируйте последнее сообщение, а не создавайте несколько сообщений подряд.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.