- И так, рассмотрим работу в голом проекте.
- Все, что мы имеем - первый пустой фрейм. Для большинства небольших программ одного кадра хватает. В скомпилированном виде проект весит 36 байт.
- Теперь в первом кадре пишем одну строчку кода
code:
trace ("1");
Тестируем. В Output будет наблюдаться одинокая единичка. При нажатии Play новых колов не появиться. Код единственного кадра исполняется только однажды.
- Добавляем еще пару строк.
code:
onLoad = function(){
trace("onLoad");
}
Тестируем и видим, что сообщение onLoad в логе появилось после единички. В коде фрейма после описания события onLoad добавим еще один вызов трекераcode:
trace ("1");
Тестируем. Код фрейма исполняется раньше всех событий (86 байт).
- В новом проекте создаем любой непустой мувиклип, помещаем его на первый фрейм и называем "ert". Пишем код
code:
onMouseMove = function(){
ert._x = _xmouse;
}
Тестируем. Мувиклип предано бегает за мышкой, укладываясь в заданное fps.
- В новом проекте создаем любой анимированый мувиклип, помещаем его на первый фрейм. Пишем код
code:
stop();
onEnterFrame = function(){
trace("onEnterFrame");
}
Тестируем. Анимация воспроизводиться, укладываясь в заданное fps и игнорируя команду stop(). Постоянно срабатывает событие onEnterFrame (394 байта).
Оглядывая небольшие опыты, можно сделать ряд полезных выводов, которые заметно облегчат разработку приложений. Вот примерный список выводов, которые вы должны были сделать:
- Не нужно создавать второй кадр с единственной командой gotoAndPlay(1).
- В единственном кадре даже при команде stop() сохраняются все возможности: можно динамически создавать и удалять объекты, моргать анимацией, обрабатывать сообщения, работайть с таймером.
- Код внутри кадра выполняется однажды, вперед всех обработчиков событий.
P.S.
Для самых маленьких: строка "onLoad" равнозначна "_root.onLoad", "this.onLoad" и равнозначна строке "_level0.onLoad", если фильм не был импортирован в другой фильм.