PDA

Просмотр полной версии : странный баг


scarbo
22.06.2008, 13:02
Ребят,помогите,плиз.Ситуация такова:
В руте есть несколько мувиков,при наведении начинается программная Tween анимация и появляются подсказки(hint,они тож программно создаются,ну там function Hint(mc:MovieClip){
hint = root.createTextField("hint",_root.getNextHighestDepth(), _xmouse+20, _ymouse+10, 50, 10); и т.д.,потом hint.text = "Foto";
mc.onMouseMove = function(){
hint._x = _xmouse+20;
hint._y = _ymouse+10;
}
}
,мувиков мало,поэтому хинты для каждого прописаны,а не подгружаются извне.
Так вот при RollOver вызывается функция Hint, а при RollOut и ReleaseOutSide _root.hint.removeTextField();
Ну,а когда на мувики кликаем,то переходим в следующие кадры.
Так вот если начать быстро щелкать на мувик,потом обратно,потом на другой мувик и обратно,ну так раз пять по разным мувикам,то этот хинт,зараза,прилипает к мышке,и забивает на все команды от RollOut.Что делать?Можно это исправить?

Wolsh
22.06.2008, 13:19
А на онПресс повесить удаление хинта не пробовали? Вроде как если человек нажал, подсказка ему больше не нужна. Бешеному пианисту тем более.

scarbo
22.06.2008, 13:29
пробовал,все равно глючит.
А причем здесь бешенный пианист??

Ну это еще не вся проблема,после кликпа по мувику преходим в следующий кадр,там подгружается текст из внешнего txt с помощью loadVars,так вот после таких 4-5 кликов,он тож глючит вылезает где то в центре,мааааааааленькими буковками,и зависает??

Wolsh
22.06.2008, 19:28
Это не баги, это нормально. Это называется переходный период. Когда перестанете думать кадрами, как дизайнер, сможете программировать, как программер. Пока у Вас в проекте на основном таймлайне несколько кадров, и при этом Вы хотите чтоб работал скрипт, не обращая внимания на появление/исчезновение экземпляров, баги обеспечены. Решайте все на одном кадре через аттач и удаление.

scarbo
22.06.2008, 21:39
Спасиб,а разве можно сайт разместить в 1 кадре,у меня английская и русская версия занимают 6 кадров,это много??
Но все ж причем тут "бешенный пианист"?????

Wolsh
22.06.2008, 22:13
Ну, у меня обычно в двух - на первом прелоадер))) Но говорят, и это неправильно))) Просто еще не было повода попробовать по-другому)
Положили фончик, менюшку если не меняется, а весь "контент" лежит в библиотеке и аттачится-удаляется в зависимости от желаний пользователя. Ну, страницы разделов могут быть во внешних свф, тексты в xml, чтобы не грузить их все, когда пользователю, возможно, они все и не нужны. Юзер жмет меню, аттачится необходимая анимация, загружается нужная ему страница... Вот скажите, при чем тут кадры?
Проблема в том, что когда Вы создаете в первом кадре программно мувик или текстфилд, а потом рут переходит на следующий кейфрейм и возвращается обратно - скрипт инициализируется с нуля, и Вы получаете два мувика, с одинаковыми именами, и всё - хаос обеспечен. И подобных "приколов" сотни, а выход один и он очевиден - есть кадр - нет, есть РАБОЧИЙ СТОЛ, и есть скрипт, который на этот стол выкладывает что нужно и убирает когда нужно. Я знаю, сразу трудно начать думать без кинопленки. Но Вы можете иногда отрываться на мелких клипах с анимацией)))
Бешеный пианист - тот несчастный, что будет быстро-быстро тыкать в иконки.

scarbo
23.06.2008, 00:05
Понятно,спасибо,инфа верна.
А насчет пианиста,чё я заволновался - просто я студент консерватории,кафедра "Фортепиано",вот и задело заживое,а влез я сеть с прооооооостенькой HTML страницей 28 апреля 2008г.,и вот затянуло,прям как наркотик,извините за сравнение.

aksios
23.06.2008, 00:31
scarbo, зачет за пианиста!
На самом деле на эти грабли по моему все наступали, систему управления лучше и впрямь ограничить одним кадром... скажем в отдельном мувиклипе, который лежит себе и дергает основной таймлайн.
Но у Вас проблема в специфике обработки состояний мыша - если мышь двигается быстрей времени обновления информации о нем во флеше, то возникает баг. Поентому, обработчик состояний лучше снабдить проверкой на ложные срабатывания - через условия, логические операции, или введение интервалов-задержек. Ничего в этом сложного нет.

Wolsh
23.06.2008, 02:34
aksios, все же описание проблемы выглядит так:Ну,а когда на мувики кликаем,то переходим в следующие кадры.
Так вот если начать быстро щелкать на мувик,потом обратно,потом на другой мувик и обратно,ну так раз пять по разным мувикам,то этот хинт,зараза,прилипает к мышкеПо-моему, причина очевидна, ведь хинт создается программно. Скорость движения мыши никак не влияет, например тут в моей галерейке
http://flasher.ru/forum/showpost.php?p=745949&postcount=10
тоже создаются хинты, но можете стучать по картинкам как Вам угодно - трабла не будет (ну кроме случайного драга :) я чето его не предусмотрел). Потому что нет переходов на другие кадры и соотв. скрипт не теряет объекты.
С пианистом неловко получилось, извините))))

scarbo
23.06.2008, 03:14
Да,ничего страшного.Зато теперь код более-менее в человеческий вид приходит,кстати когда все программно и на 1 кадре багов и вправду нет,во всяком случае с 2 картинками точно.Так что всем СПАСИБО!!!!