![]() |
|
||||||||||
|
|||||
|
"simple"
|
Такой вот...
Если поместить на событие клипа метод swapDepths этого клипа (например, this.swapDepths (1000) , затем перейти вперёд наглавной диаграмме, а затем обратно, то опять сработает событие load (при чём ещё только один раз. больше не будет)... Почему так?! [исходник прилагается: чтобы понять о чём я, просмотрите код в клипе (его там всего пара строчек), а затем запустите клип и смотрите на трейс. если же убрать строку this.swapDepths (1000); в клипе square, всё нормально. похоже на какую-то несогласованность событий и функций] Вопрос-довесок ![]() Как узнать самое большое значение depth на данной временной диаграмме (кстати, у каждой диаграммы свой набор уровней (depth)?)? |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
ага, а если поставить this.swapDepths(random(1000));
то онлоад срабатывает КАЖДЫЙ раз :)) а все потому что клипы сделанные руками и свапнутые потом не удаляются сами при переходе по кадрам таймлайна... с динамически созданными клипами такого глюка нет. поскольку ты свапишь все время на одну глубину, то первый раз срабатывает онлоад самого клипа, а потом его онлоад на глубине 1000 |
|
|||||
|
"simple"
|
Большое спасибо
![]() Суть понял, но вот с одной из твоих фраз всё никак не разберусь... Цитата:
).Как я понял, load происходит повторно потому что... так, кажется я начинаю понимать... Т.е. при swapDepths в задумке создаётся новый клип на новом уровне, в него передаютя все свойства (в том числе, что он уже загружен) и методы старого и старый удаляется? То есть из-за этого глюка имеем два одинаковых клипа. Так? |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
почти так :)
как там оно обстоит на самом деле - хрен знает... но суть в том, что на каждой новой глубине лоад срабатывает заново. а все потому что из-за свапа клип не исчезнет при переходе в следующий кадр.... хотя должен бы, как всякий уважающий себя клип созданный НЕ-динамически... |
|
|||||
|
"simple"
|
Так. С причиной болезни мы разобрались.
Теперь хотелось бы, чтобы Вы прописали больному какое-нибудь лекарство Проще говоря, как это лечится? |
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
ММ видимо, не рассчитывала, что swapDepths будет использоваться для клипов, созданных "вручную". Флэш распределяет их по глубинам и не парится. Если при переходе на некий кадр в таймлайне прописан клип, а на соотв. глубине его нет - он его туда пихает. Получается ещё один клип:
onClipEvent (load) { trace ("[square][onload]: loaded"); // this.swapDepths (1000); } on (press) { square.swapDepths (1000); square._y+=100; prevFrame (); } После второго свопа исходная глубина уже не пустует, поэтому третий клип не появляется. Соответственно, если при переходе на глубине (отрицательной, ибо отрицательные - для сделанных "вручную") клипа не должно быть, а он там есть, флеш его затирает нафих: on (press) { if(square.getDepth()!=-1000){ square.swapDepths (-1000); square._y+=100; }else prevFrame(); } Причем, флэш правильно опознаёт клип, так что "подменить" не удается.
__________________
ВКЛЮЧИ МОЗГИ!!! Одноразовых граблей не бывает. На большинство из них уже кто-то наступал. (c) Dindin Последний раз редактировалось TTS; 01.08.2003 в 03:52. |
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
А чтобы правильно лечить, нужно знать историю болезни (т.е. зачем все это нужно).
Вообще-то attachMovie - хорошее средство.
__________________
ВКЛЮЧИ МОЗГИ!!! Одноразовых граблей не бывает. На большинство из них уже кто-то наступал. (c) Dindin Последний раз редактировалось TTS; 01.08.2003 в 03:56. |
|
|||||
|
"simple"
|
2TTS
Из всего выше сказанного и сказанного вне, делаем вывод, что лечения нет? Цитата:
делаю вывод, что так и придётся делать...Тока вот теперь возникает проблема с онЛоадом... [http://www.flasher.ru/forum/showthre...threadid=47485] буду пробовать... Последний раз редактировалось metton; 01.08.2003 в 16:01. |
![]() |
Часовой пояс GMT +4, время: 12:37. |
|
|
« Предыдущая тема | Следующая тема » |
|
|