![]() | |
Свойства объекта MovieClip |
1. Любой экземпляр видеоклипа во Flash является объектом. Это значит, что у него имеется набор свойств, методов и событий, на которые можно назначить реакцию. Ниже перечислены основные свойства экземпляров видеоклипов.
Все перечисленные свойства доступны для чтения (т.е. в программе можно узнать, чему они равны для конкретного экземпляра видеоклипа), а часть из них (помечены *) и для записи (т.е. можно изменять их программным путем с помощью оператора присваивания). Всеми вышеперечисленными свойствами обладает также сам flash-фильм (главная временная шкала). Кроме того, flash-фильм обладает рядом дополнительных свойств:
|
Методы объекта MovieClip |
2. Ниже перечислены наиболее используемые методы MovieClip
|
Обработка событий MovieClip |
3. Чтобы экземпляр видеоклипа реагировал на нужное событие, необходимо написать обработчик. Обработчик пишется в окне кода панели Actions, при этом нужный экземпляр должен быть выделен. Ниже приведен пример обработчика, который заставляет экземпляр видеоклипа перемещаться вслед за курсором мыши. Ключевое слово this обозначает тот экземпляр, к которому относится код обработчика.
onClipEvent(mouseMove) { Этот обработчик реагирует на событие перемещение курсора мыши. Другие возможные события объекта MovieClip перечисляются ниже.
|
Задание | 4. Используя обработчик события enterFrame, заставьте экземпляр любого видеоклипа перемещаться влево (сам фильм должен состоять лишь из одного кадра). |
Задание |
5. Поместите на главную временную шкалу экземпляр любого видеоклипа, а затем добавьте из библиотеки готовых кнопок |
Упражнение |
6. В этом упражнении нужно создать элемент управления типа "ползунок" и использовать его для изменения свойств объекта.
1. Создайте новый документ. Создайте новый символ типа видеоклип и нарисуйте в нем, например, мордочку. Разместите экземпляр этого видеоклипа на рабочем поле главной временной шкалы и дайте ему какое-нибудь имя (например, face1). Поместите под ним надпись "исходный вариант". К первому кадру временной шкалы добавьте команду face1.duplicateMovieClip("face2", 1, {_x:350,_y:150}); Эта команда создает дубликат мордочки по имени face2. В качестве третьего параметра в фигурных скобках можно перечислить начальные значения некоторых свойств нового объекта. Мы указали координаты — чтобы исходный и новый объект не наслаивались друг на друга. Протестируйте. Если все правильно, при запуске фильма должны появиться две мордочки. 4. Напишите у экземпляра плашки (position) два обработчика событий (для нажатия и отпускания кнопки мыши). Для этого выделите его, откройте панель Actions и введите следующий код: on (press){ Здесь используется глобальная переменная state, которая будет определять, движется наш ползунок или отпущен. Четыре числовых параметра в методе startDrag не позволят "стащить" ползунок с линейки, ограничив диапазон перемещений. 5. Создайте два экземпляра элемента ползунка на рабочем поле главной временной шкалы. Один из них будет определять прозрачность второй мордочки, а другой — ее масштаб. Дайте им разные имена (например, scaleSlider и alphaSlider). 6. В первом кадре временной шкалы создадим обработчик события enterFrame. Это событие вызывается при воспроизведении каждого нового кадра. Несмотря на то, что в нашем фильме только один кадр, на самом деле он циклически повторяется, а значит, обработчик, который мы напишем, будет постоянно срабатывать со скоростью 12 раз в секунду. Мы возложим на этот обработчик обязанность проверять текущую позицию каждого ползунка и в зависимости от ее значения устанавливать параметры видеоклипа с мордочкой. Код обработчика будет следующим: _root.onEnterFrame = function(){ Здесь используется второй способ создания обработчика. Этот код может быть написан в любом месте программы, т.е. не обязательно должен быть связан с экземпляром видеоклипа. Указание на экземпляр, с которым соотносится описываемый обработчик, присутствует в самом начале кода (в данном случае это _root, т.е. речь идет о фильме целиком). К наименованию события добавляется приставка on, а само событие записывается после ключевого слова function. 7. Протестируйте пример. В данный момент при запуске программы дубликат мордочки полупрозрачный. Чтобы изначально он был темным, надо, чтобы ползунок alphaSlider по умолчанию находился в крайней правой позиции. Для этого добавьте к кадру 1 главной временной шкалы команду alphaSlider.position._x = 200. |
Задание |
7. Создайте небольшую детскую игру. В этой игре есть три маленькие фигуры (треугольник, квадрат, круг) и три большие. Ребенок должен перетащить маленькую фигуру на соответствующую ей большую. Если он сделает это правильно, появится надпись "Молодец, съешь конфетку". В противном случае фигура возвращается на место. При создании игры пользуйтесь приведенными ниже подсказками.
1. Начните создание игры с одной фигуры, например, круга. Создайте в библиотеке символ типа видеоклип, содержащий круг. Поместите на рабочее поле два экземпляра этого круга и уменьшите один из них. Большой круг назовите circleBig, маленький — circleSmall. 2. Напишите два обработчика событий для маленького круга. При нажатии на маленьком круге он должен начинать двигаться вслед за курсором мыши, а при отпускании мышки — останавливаться. Протестируйте программу. Должно работать. 3. Создайте видеоклип, содержащий ободряющее сообщение про конфетку. Первый кадр видеоклипа должен быть пустым, а дальше может следовать несколько кадров анимации. К первому кадру добавьте команду stop(), а второму кадру присвойте любую метку (например, start). Поместите экземпляр данного видеоклипа на рабочее поле. Протестируйте. Если все правильно, новый видеоклип никак себя проявлять не должен. 4. А теперь внесите изменения в обработчик события, который реагирует на отпускание кнопки мыши. Программа должна проверять, был ли маленький кружок отпущен над большим. Если да, то необходимо запустить видеоклип с надписью, начиная со второго кадра (кадра с меткой start). В противном случае необходимо вернуть маленький кружок на начальную позицию (координаты начальной позиции кружка можно посмотреть на панели свойств). Дополнительная подсказка: условие проверки правильно записать так: if (this._droptarget == "/circleBig"). |
Объект Mouse |
8. В возможности ActionScript включен объект Mouse, который имеет два простых метода:
|
Упражнение |
9. С помощью объекта Mouse можно эмулировать смену курсора мыши. В приведенном ниже примере курсор меняется, когда мышь наводится на объект MovieClip. Выполните его.
1. Создайте новый документ. В библиотеке этого документа создайте символ видеоклипа и назовите его circle. Нарисуйте в первом кадре этого видеоклипа красный круг размера 25x25 пикселей с помощью инструмента Oval. 2. Создайте экземпляр этого символа на рабочем поле. Назовите его circleBIG и установите его размер равным 200x200 пикселей. Переместите его в центр рабочего поля и примените цветовой эффект Tint, чтобы экземпляр принял цвет, отличный от первоначального. 3. Теперь необходимо связать символ Circle из библиотеки документа с экспортируемым фильмов Flash. Щелкните правой кнопкой мыши на символе Circle и выберите из контекстного меню команду Linkage. Установите флажок опции Export for ActionScript и введите имя Circle в поле Identifier. Теперь можно динамически вставлять этот символ в фильм Flash с помощью ActionScript. 4. В первом кадре главной временной шкалы откройте панель Actions и введите следующий код
circleBIG.onMouseMove = function(){ 5. Детально проанализируйте приведенный код. Протестируйте программу. |
Объект Color |
10. Объект Color языка ActionScript представляет возможности управления внешним видом объекта MovieClip. Основными методами этого объекта являются:
|
Упражнение |
10. Приведенное ниже упражнение поможет разобраться в особенностях создания и использования объекта Color. Выполните его.
1. Создайте новый документ, а в библиотеке документа - символ типа видеоклип. Нарисуйте в первом кадре паука. Создайте экземпляр видеоклипа на рабочем поле и назовите его spider_1. 2. Откройте библиотеку стандартных кнопок и подберите любую кнопку, при нажатии на которую будет меняться цвет паука. Перетащите экземпляр этой кнопки на рабочее поле. На панели Actions напишите для нее следующий код:
on(release){ Во второй строке здесь создается новый объект Color (под названием spiderFill1) и связывается с экземпляром нашего паука. Следующая команда изменяет цветовые составляющие этого объекта. В качестве параметра указывается шестнадцатеричное значение цвета в системе RGB (в данном случае красный цвет), которое обязательно должно начинаться с символов "0x". Более тонко воздействовать на цвет можно с помощью метода setTransform, который в качестве параметра требует объект типа colorTransformObject. Метод позволяет воздействовать на каждую цветовую составляющую отдельно. Рассмотрение его выходит за рамки данного пособия. |