PDA

Просмотр полной версии : Конфликт функции от события


willis83
23.04.2008, 20:41
Пару часов назад я задавал вопрос по исполнению кода в мувике с одним кадром, ответ дали исперпывающий и вот по ходу дела возник новый вопрос. В главной сцене есть несколько мувиков в которых по одному кадру, код в этих кадрах исполняется по событи onEnterFrame.
Но возникает ошибка т.к. в нескольких мувиках вызывается эта функция. Как я думаю ошибка заключается в том что из нескольких мест вызывается функция без имени onEnterFrame=function().....

Вопрос в том, как можно отличить эти функции друг от друга. Пытался прописать их ранее, а потом на событии вызывать функции по имени Пример:

function func1 {
..... some code..... };
onEnterFrame=func1();


Но данный код, хоть и не вызывает ошибки, результатов не приносит, подскажите в чём проблема.

iNils
23.04.2008, 20:47
func1 - это ссылка на функцию
func1() - это вызов функции
Написав
onEnterFrame=func1();Вы вместо ссылки на функцию, которую должен будет вызвать onEnterFrame, присвоили ему значение которое получено в результате выполнения этой функции.

willis83
23.04.2008, 20:50
Всё понял, убрав "()" всё заработало. Огромное спасибо.

willis83
23.04.2008, 21:17
Вообще интересная картина. Вышеописанную проблему я устранил, но тут из-за угла выпругнула новая: 2 этих мувика находятся на 2ух разных слоях главной сцены, и теперь работает мувик который находится на нижнем слою. Как только я их меняю местами, начинает работать предыдущий, а верхний не работает....

iNils
23.04.2008, 21:19
Не очень понял о чем вы, но ситуаця похожа на ту, когда два клипа имеют одинаковые имена.

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. конечно весь код вообщем-то условный, просто передал суть

iNils
23.04.2008, 21:43
В методе createTextField, первый аргумент - строка.

PS. На ты я общаюся только с теми, кто тут давно, а с остальными на вы, так как не все любят когда им тыкают. А запомнить исключение сложно - людей слишком много.

PPS. Когда хотите что-то добавить, используйте кнопку http://www.flasher.ru/forum/images/russian/style3/buttons/edit.gif и редактируйте последнее сообщение, а не создавайте несколько сообщений подряд.