![]() |
Параметр в addFrameScript
Хочу остановить и убрать видимость.
Такой вариант не нравится. Код AS3:
|
Код AS3:
|
А какой вариант лучше? И чем?
|
Мне думается, что лучше всё-же второй вариант. Привычнее как-то)
Единственно что, условие (mc.currentFrame == 0) нужно заменить на (mc.currentFrame == 1), т.к. отсчёт кадров начинается с 1, а не с 0. И ещё в конце обработчика можно написать mc.removeEventListener(Event.ENTER_FRAME, enterFrameListener), чтобы он зря не отрабатывал каждый кадр. При условии, конечно, что скрыть нужно единожды. |
первый тоже имеет право на жизнь, но я бы вынес функцию отдельно.
Цитата:
|
Вы издиваетесь?)
Я же имею ввиду не вообще "как это можно сделать", а вменяемые варианты :) TanaTiX - мой вариант лучше, быстрее и правильнее. Когда нужно нажать на какую нибудь кнопку мышкой (у которого mouseEnabled=true) - мы ведь подписываем объект на MouseEvent.CLICK, а не stage, где в последствии через getObjectsUnderPoint определяем список того, что под нами и циклом сравниваем элемент с собой? SamFR, привычно то привычно, но ведь мы наследуемся от шейпа, от спрайта, от эвент диспатчера наконец. Можно ведь сразу от мувиклипа, тоже привычней) Felicast, за помощь спасибо, но я бы сказал, твой вариант права на жизнь не имеет) |
Ну не знаю, не знаю... Во-первых, от MovieClip-а я наследовать никого не призываю :) А насчёт правильнее... не уверен. Просто, наверное, не очень доверяю недокументированным возможностям, и использую их только при крайней необходимости. Мало ли, что адобовцы к следующей версии плеера придумают :)
Насчёт скорости – да, наверное, addFrameScript() побыстрее будет, но так ли уж в данном случае важна разница в пару миллисекунд? Добавлено через 5 минут Кстати, больше вариантов, как вменяемых, так и невменяемых, в голову что-то не приходит... |
Цитата:
Цитата:
Цитата:
|
Зачем вешать обработчик, который будет вызываться каждый кадр, который возможно будет вызывать неудобства (добавить/удалить листенер при уничтожении объекта), если можно добавить код к кадру?
|
Ну не обязательно он должен отрабатывать каждый кадр. Если больше не планируется возвращение к первому кадру, либо больше не нужно в этом кадре мувик скрывать, то в теле обработчика можно сразу же отписаться от энтерфрейма. Тогда он сработает только один раз.
Я не говорю, что навешивание обработчика – самый красивый и правильный метод, просто больше документированных возможностей отловить наступление кадра я не знаю. А к недокументированным своё отношение я уже высказал выше. P.S. Кстати, мы ведь не знаем, как работает addFrameScript()... Вполне может оказаться так, что он делает то же самое :) Ведь MovieClip, всё-таки, является наследником спрайта, и было бы логичным реализовать мувиклиповские методы, основываясь на базовой функциональности. |
| Часовой пояс GMT +4, время: 20:19. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.