|
|
Flash-ролики в презентациях Урок 4. Элементы программирования на ActionScript 2.0.
Фильм 1
Фильм 1. Комментарии Для начала создаю клип с покадровой анимацией. В каждом кадре меняется положение ножек и усиков жука. Всего у меня получилось 6 кадров. Размещаю на основной сцене фильма экземпляр клипа жука и 2 кнопки. Программировать поведение клипа жука не будем, реализуем классическую анимацию с направляющим слоем. А вот на кнопки подвесим простые сценарии. Здесь play() и stop() – это команды, управляющие не клипом жука, а всем фильмом. Сценарий кнопки «стоп»: on (release) {stop();} Сценарий кнопки «вперед»: on (release) {play();}
Фильм 2
Фильм 2. Комментарии А теперь создана программируемая анимация клипа жука. Отказываемся от любых встроенных анимаций. В линейке фильма – всего один кадр. Для начала пусть жук просто движется по горизонтали. Размещаем в слое «жук» экземпляр того же 6-кадрового клипа жука. Кнопки «вперед» и «стоп» управляют значением переменной stoy, разрешающей или запрещающей жуку передвигаться. Эту переменную надо описать и присвоить ей начальное значение. Создадим слой actions и к его единственному кадру привяжем однострочный сценарий: var stoy:Number = 0; Внимание! К переменной stoy из сценария клипа надо обращаться _root.stoy, так как она описана в основном фильме, для которого зарезервировано имя _root. Конструкция onClipEvent (enterFrame){} означает, что данный сценарий выполняется каждый раз, когда для клипа наступает событие «входим в кадр». Для того, чтобы управлять х-координатой экземпляра клипа жука, используем свойство _х в виде this._x, так как имя this зарезервировано для текущего экземпляра. Сценарий кнопки «стоп»: on (release) {stoy = 1;} Сценарий кнопки «вперед»: on (release) {stoy = 0;} Сценарий клипа жука: onClipEvent (enterFrame) { if (_root.stoy == 0) { this._x +=5; if (this._x >500) { this._x = -50; } } }
Фильм 3
Фильм 3. Комментарии Кажется, фильм не изменился. На самом деле мы сделали важный шаг к профессионализму в ActionScript. На линейке – три кадра. Это классический вариант трехкадрового цикла. Отказываемся от привязки сценариев к клипам и получаем возможность создавать более сложные фильмы, не запутываясь в многочисленных отдельных сценариях. Стараемся весь код размещать на основной линейке в специально созданном слое actions. Правда, в текущем варианте оставлены сценарии, привязанные к кнопкам. В первом кадре (подготовка) записываются начальные данные, определяются функции и т.д.. Во втором - основная часть программы. В третьем – команда вернуться во второй кадр. Чтобы обратиться к свойству _х экземпляра клипа жука, экземпляру надо присвоить имя на панели «Свойства». Здесь – имя cow1. К переменной stoy можно обращаться без префикса, так как все кадры расположены на основной линейке. 1 кадр: var stoy:Number = 0; 2 кадр: if (stoy == 0) { cow1._x +=5; if (cow1._x >500) { cow1._x = -50; } } 3 кадр: gotoAndPlay(2); Сценарий кнопки «стоп»: on (release) {stoy = 1;} Сценарий кнопки «вперед»: on (release) {stoy = 0;}
Фильм 4
Фильм 4. Комментарии Еще один шаг к профессиональному программированию. Отказываемся от сценариев кнопок. Записываем функции – обработчики событий кнопок в первом кадре слоя action основной линейки. Не забудем дать имена всем кнопкам на панели «Свойства». Для усложнения фильма добавлены еще 2 кнопки и переменная v – скорость движения. 1 кадр: var stoy:Number = 0; var v:Number = 6; btnGo.onRelease = function() { stoy = 0; } btnStop.onRelease = function() { stoy = 1; } btnFast.onRelease = function() { v++; } btnSlow.onRelease = function() { v--; } 2 кадр: if (stoy == 0) { cow1._x +=v; if (cow1._x >500) { cow1._x = -50; } } 3 кадр: gotoAndPlay(2);
| URL: |
No comments posted yet
Comments