Свойства объекта 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. В качестве третьего параметра в фигурных скобках можно перечислить начальные значения некоторых свойств нового объекта. Мы указали координаты — чтобы исходный и новый объект не наслаивались друг на друга. Протестируйте. Если все правильно, при запуске фильма должны появиться две мордочки. 2. Нарисуем ползунок. Создайте новый символ видеоклипа. Основой ползунка будет линия длиной ровно 200 пикселей, на концах которой расположены небольшие окружности. Линия должна начинаться точно в центре видеоклипа в точке с координатами (0,0) — там, где крестик. Нарисуйте основу ползунка. 3. В том же видеоклипе создайте новый слой и нарисуйте небольшую плашку — собственно ползунок, который можно перетягивать. На основе этой плашки создайте еще один символ типа видеоклип. Двойным щелчком перейдите в режим редактирования этого символа и с помощью панели Align разместите плашку точно по центру. Вернитесь к ползунку и убедитесь, что плашка располагается посередине (ее горизонтальная координата должна быть 100). Дайте имя экземпляру плашки (например, position). 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. Метод позволяет воздействовать на каждую цветовую составляющую отдельно. Рассмотрение его выходит за рамки данного пособия. |