Показать сообщение отдельно
Старый 07.02.2012, 10:22
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 8  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
Сообщение от gait Посмотреть сообщение
1. Вызывать stop() в непосредственно в нужном кадре, но вызов функций в кадре - это нехорошо.
Откуда такая информация? Аргументируйте - мне самому интересно. А то, если клип из SWC должен проделывать какую-то анимацию я всегда пишу в кадре "stop()", "gotoAndStop()" etc.
Короче такие маленькие методы я всегда пишу на кадре, зачем засорять класс какими-то ненужными функциями, ентерфреймами и проверками, ради того чтобы остановить какой-то незначительный мувиклип, который и так должен должен остановится после проигрывания анимаии. Короче вот это:
Код AS3:
private var mc:check_mc;
private function foo():void 
{
	mc = new check_mc();
	mc.addFrameScript(mc.totalFrames - 1, onFinalFrame);
	addChild(mc);
}
 
private function onFinalFrame():void
{
	mc.stop();
}
сравнивать с вот этим:
Код AS3:
this.stop();
Ничего не скажу, просто со стороны посмотрите.
Цитата:
3. Использовать addFrameScript() где callback является глобальной функцией, но в таком случае придется и мувиклип делать глобальным, а это опять же нежелательно.
Как in4core уже сказал - он не будет глобальным в таком случае а переменной или свойством класса. Опять же откуда такая информация, что это нежелательно? Пруф пожалуйста.
Цитата:
Сообщение от in4core Посмотреть сообщение
Что значит область видимости функции? - откуда такие понятия *?
Это то же самое что локальная переменная - видна только в пределах одной функции.
Цитата:
Сообщение от in4core Посмотреть сообщение
а локальными переменными пользоваться только в случаях реальной необходимости, например как в цикле
А че так? Наоборот же - она удалится GC после выполнения функции и не будет мозолить глаза...

Добавлено через 1 час 8 минут
PS: не поймите меня неправильно. Я не сторонник кода в кадрах. Просто, если есть возможность написать одну строчку в кадре, вместо 15 в классе, то допускаю что эту строчку можно повесить на кадр. Почему допускаю? - потому что это надо делать не все время и когда угодно. Это надо делать с умом. То есть делать лишь в тех случаях, когда код кадра никак не влияет на происходящее вне его пределах. Пример: есть анимация крутящейся звездочки (один оборот/10 кадров). Пишем в классе код - добавляем звезду в дисплей лист. Зачем писать какие-то addFrameScript или ентерфреймовские проверки "не проигралась ли анимация до конца", чтобы вернуть ее на первый кадр и снова проиграть? Лучше написать в кадре gotoAndPlay(1) - и звезда будет крутится вечно. А когда буду писать код в классе - мне не надо парится крутится там звезда или нет - я забываю про ее анимацию и манипулирую ею как простым спрайтом. Кто сказал что такой подход плохой?
__________________
Я мало чего умею, но зато хорошо умею учиться...