Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Action Script 2.0

.docx
Скачиваний:
31
Добавлен:
12.03.2015
Размер:
64.98 Кб
Скачать

2.  Нарисовав колесо, добавьте еще один слой и назовите его Action. Сделайте  этот слой активным и на панели Action напишите сценарий вращения (rotation) для кадра:

setInterval(rotation,500);

function rotation()          {

_rotation=_rotation-15;     }

3. Перенесите экземпляр символа на сцену и протестируйте результат.

При вращении возможны парадоксальные эффекты, это зависит от пространственно-периодической структуры элементов. Возможно, потребуется экспериментально подобрать параметры движения.

4. Создайте новый символ типа Movie clip с именем Автомобиль. Импортируйте из библиотеки рисунков изображение автомобиля вид сбоку, желательно на прозрачном фоне или без фона.

5. Находясь в режиме редактирования символа, добавьте еще один слой выше слоя Автомобиль.  Перенесите на этот слой из библиотеки два экземпляра символа клипа Колесо, установите их в нужные места, выбрав подходящий размер колес.

6. Перенесите экземпляр символа Автомобиль на сцену в левую или правую часть сцены. Создайте анимацию движения (motion) к другому краю сцены. Чтобы остановить движение автомобиля при достижении края сцены, в последний кадр сцены введите команду stop().

7. Протестируйте результат. Возможна несогласованность движения колес и скорости движения автомобиля, в этом случае нужно заняться расчетами или поэкспериментировать.  При согласованности скоростей за время полного оборота колеса автомобиль должен переместиться на расстояние, равное длине внешней окружности колеса. Комбинация вращательного и поступательного движения не является простой задачей.

8. Добавьте еще один слой на сцену. Перенесите на него еще один символ автомобиля и обеспечьте его движение навстречу первому автомобилю. Протестируйте результат.

 

Пример 5 Зависимость движения одного объекта от положения другого (погоня).

  1. Создайте символ типа Movie clip с именем Квадрат. Это преследуемый объект.

  2. Создайте символ типа Movie clip с именем Круг. Это будет догоняющий объект.

  3. Создайте на сцене анимацию движения по траектории, похожей на синусоиду (motion tween)  для преследуемого объекта на слое Квадрат.

  4. В режиме редактирования символа Круг добавьте обычный кадр по F5 для циклического воспроизведения клипа. Для первого ключевого кадра напишите сценарий:

var k=0.3; //для задания масштаба приращения координат

_root.круг._x=_root.круг._x+(_root.квадрат._x-_root.круг._x)*k;

_root.круг._y=_root.круг._y+(_root.квадрат._y-_root.круг._y)*k;

  1. Перенесите на сцену в новый слой Круг экземпляр символа Круг. На сцене каждому экземпляру символа задайте имена квадрат и круг соответственно.

  2. Протестируйте результат. Чем больше расстояние между объектами, тем быстрее движется круг.

  3. Обеспечьте остановку воспроизведения мультфильма при близком расстоянии между объектами.  Для этого допишите имеющийся сценарий.

var k=0.2;

_root.круг._x=_root.круг._x+(_root.квадрат._x -_root.круг._x)*k;

_root.круг._y=_root.круг._y+(_root.квадрат._y -_root.круг._y)*k;

r=Math.sqrt((_root.квадрат._x -_root.круг._x)*(_root.квадрат._x -_root.круг._x)+

(_root.квадрат._y-_root.круг._y)*(_root.квадрат._y-_root.круг._y));

if (r<30) _root.stop();

  1. Обеспечьте движение обоих клипов собственными сценариями. Для этого выполните следующие пункты:

  2. На главной временной шкале удалите все кадры, кроме первых ключевых.

  3. Отредактируйте символ квадрат, а именно рядом с ключевым кадром добавьте обычный кадр. Для первого ключевого кадра напишите сценарий:

var k=0.1;

_root.квадрат._x=_root.квадрат._x+(_root.квадрат._x -_root.круг._x)*k;

_root.квадрат._y=_root.квадрат._y+(_root.квадрат._y -_root.круг._y)*k;

  1. Отредактируйте символ круг, а именно рядом с ключевым кадром добавьте обычный кадр. Для первого ключевого кадра напишите сценарий:

var k=0.2;

_root.круг._x=_root.круг._x+(_root.квадрат._x -_root.круг._x)*k;

_root.круг._y=_root.круг._y+(_root.квадрат._y -_root.круг._y)*k;

  1. Протестируйте результат, поэкспериментируйте со значения k для квадрата, например:

var k=50;

_root.квадрат._x=_root.квадрат._x+1/(_root.квадрат._x -_root.круг._x)*k;

_root.квадрат._y=_root.квадрат._y+1/(_root.квадрат._y -_root.круг._y)*k;

 

Задание

Задание 1

Нарисуйте клоуна с пышной шевелюрой. Нанесите на сцену четыре кнопки: красную, синюю, зеленую и желтую. Напишите сценарий, по которому при нажатии на кнопку волосы клоуна меняли бы цвет на цвет, соответствующий цвету кнопки.

Рекомендации:

Количество слоев – три: фон, волосы, кнопки.

Волосы – экземпляр типа Movie clip, имеющий имя, например: hair.

Создайте экземпляр объекта Color:

имя_объекта= new Color(имя экземпляра символа).

Команда для смены цвета: имя_объекта.setRGB(код цвета)

Код цвета указывают в шестнадцатеричной системе счисления:  0xRRGGBB, конкретные значения возьмите с панели цветов.

Задание 2

Добавьте на сцену еще одну кнопку. Напишите сценарий, по которому при нажатии на кнопку волосы клоуна меняли бы цвет на случайно выбранный.

Рекомендации:

Случайные значения цветов R,G,B получите с помощью датчика псевдослучайных чисел, при этом учтите, что на каждую цветовую компоненту отводится 1 байт.

Полученные десятичные значения цветов необходимо перевести в шестнадцатеричные значения, т.к. именно они используются в команде имя_объекта.setRGB.

Для этого сначала с помощью метода toString получите строковое представление чисел, соответствующих значениям R, G, B в системе счисления с указанным основанием.

Например, R.toString(16) возвращает      строковое представление числа R в системе счисления с указанным основанием.

Затем соедините преобразованные цветовые значения с помощью оператора + и полученное выражение присвойте строковой переменной.

В переменной будет храниться строковое значение RGB. Его следует преобразовать в шестнадцатеричное число и сохранить в другой переменной. Для этого используется функция

parseInt(имя_строковой-переменной,основание системы счисления).

Далее установите цвет волос аналогично первому примеру.

Задание 3

Создайте свое изображение. Напишите сценарий, по которому несколько частей изображения меняли бы случайным образом цвета по нажатию на одну кнопку.

Расширение интерактивных возможностей с применением объекта Key

Объект Key – глобальный, а это значит, что вы не можете создать несколько его  экземпляров. Чаще всего этот объект применяется для определения нажатия той или иной клавиши. Синтаксис операции:

Key.isDown(Key.TAB);

В приведенной здесь строке используется метод isDown() объекта Key для определения нажатия на клавишу. Этот метод возвращает результат true либо false. В качестве параметра метода isDown() можно указать либо имя клавиши в объекте Key, либо числовой код этой клавиши. Например, для клавиши Tab можно указать имя – Key.TAB, либо число 9 – код этой клавиши в таблице ASCII. Следующий скрипт эквивалентен предыдущему:

Key.isDown(9);

Пример 1 Перемещение воздушного шара по горизонтали

  1. Импортируйте  в свой документ подходящий для полета воздушного шара пейзаж.

  2. Правильно создайте и нанесите на сцену экземпляр воздушного шара.

  3. напишите сценарий для экземпляра шара:

onClipEvent(load) { // выполняется при загрузке экземпляра

speed=10;              // указывается величина смещения влево – вправо

}

onClipEvent(enterFrame) {  // выполняется при вводе каждого кадра

if (Key.isDown(Key.RIGHT)) {

_x+=speed;}

else if (Key.isDown(Key.LEFT)) {

_x-=speed;}

}

Задание

1. Обеспечьте перемещение шара по вертикали клавишами стрелок вверх – вниз.

Лабораторная работа №8

Рисование линий по формулам, звук, видео, публикация документа

Цель работы: написание сценариев для рисования графиков функций, добавление в документ звука и видео, установка параметров публикации.

В данной работе нам понадобятся две функции:

Функция duplicateMovieClip(клип, имя, уровень)

Она имеет три разделенных запятой параметра. Функция дублирует экземпляр клипа, указанный в параметре клип. В примере это _root.p. Дубликат получает имя, указанное в параметре имя. В примере это имя формируется как строка, которая начинается с mc, к ней добавляется номер дубликата. В примере дубликаты получат имена mc0, mc1, mc2 и т.д. Экземпляр клипа загружается на уровень, указанный в параметре уровень, в примере он определяется как порядковый номер дубликата.

Функция setProperty(клип, свойство, значение)

Функция устанавливает значения для свойства клипа. В примере имя клипа  _root.mc, имен свойств несколько, например: _width,  _x,  значениями являются w, h, i+100 и т.д.

Пример 1 Построение синусоиды

  1. Создайте символ типа Movie clip с изображением короткого горизонтального отрезка. Поместите экземпляр символа на сцену за пределами монтажного стола.

  2. Выделите экземпляр символа и задайте его имя, например p.

  3. напишите сценарий для первого кадра.

A=30;       //амплитуда синусоиды

z=0.05;     //частота синусоиды

w=2;        //ширина точки

h=5; //высота точки

n=300; //количество циклов

i=0; //счетчик циклов

while (i<n) { //цикл

duplicateMovieClip(_root.p,»mc»+i,i); //дублирование клипа

//назначение свойств

setProperty(«_root.mc»+i,_width,w);

setProperty(«_root.mc»+i,_height,h);

setProperty(«_root.mc»+i,_x,i+100);

setProperty(«_root.mc»+i,_y,         A*Math.sin(z*i)+150);

i=i+1;

}

Линия создается с помощью выражений, которые задают свойства _x, _y. Горизонтальная координата изменяется по линейному закону, а вертикальная – по синусоидальному.

Пример 2 Рисование с помощью сценария фигуры Лиссажу

1. Выполните пример 2 аналогично примеру 1. Для первого кадра напишите сценарий:

A1=100;

A2=80;

z1=0.05;

z2=0.022;

w=2;

h=5;

n=300;

i=0;

while (i<n) {

duplicateMovieClip(_root.p,»mc»+i,i);

setProperty(«_root.mc»+i,_width,w);

setProperty(«_root.mc»+i,_height,h);

setProperty(«_root.mc»+i,_x,A1*Math.sin(z1*i)+150);

setProperty(«_root.mc»+i,_y, A2*Math.cos(z2*i)+150);

i=i+1;

}

  1. Протестируйте результат, поэкспериментируйте с заданием параметров.

Загрузка звука и видео

Во Flash-документ можно импортировать звуковые файлы форматов:

WAV   (для Windows)

AIFF  (для Macintosh)

MP3  (для Windows и Macintosh)

Если установлен проигрыватель QuickTime4 и выше, то можно импортировать файлы форматов:

AIFF (для Windows и Macintosh)

Sound Designer II (для Macintosh)

Sound Only QuickTime Movies (для Windows и  Macintosh)

Sun AU (для Windows и  Macintosh)

WAV (для Windows и  Macintosh)

Звуками можно управлять из сценариев. Для этого служит объект класса Sound. Сначала определяется экземпляр объекта: Mysound=new Sound().

Методы класса Sound:

attachSound(“имя звука”) – присоединяется звуковой файл, имя звука – значение идентификатора звука  указывается в окне Linkage Properties.

loadSound(«путь к файлу», true); пример  записи пути к файлу – audio/friends_on_tv_56.mp3

setVolume() – устанавливается громкость от 0 до 100.

start(задержка, кол-во_повторений)

stop() – останавливает воспроизведение.

Пример1. Звук

  1. Импортируйте звуковой файл в библиотеку текущего документа (например: C:\WINDOWS\Media\…).

  2. На временной шкале сцены создайте слой Звук (несколько звуков – несколько слоев). Перенесите звуковой файл на этот слой (ничего не появится).

  3. Выделите в слое со звуком кадр, с которого нужно начать воспроизведение. На панели свойств для этого кадра укажите параметры звука (Fade in – увеличение звука, Stream – анимация воспроизводится в темпе звука, Repeat/loop – количество повторов или непрерывно). Sync – установите Event (проигрывается до конца).

Пример 2  Сценарий для воспроизведения звука

  1. Импортируйте звуковой файл в библиотеку документа.

  2. Щелкните правой клавишей мыши по имени этого файла в библиотеке и выберите linkage.  Установите флажок Export for Action script.

  3. В поле Identifier введите имя переменной, по которой происходит обращение к звуковому файлу в сценарии.

  4. поместите на сцену кнопку и для нее напишите сценарий.

on(release) {

mysound=new Sound();

mysound.loadSound(«file:///F:/Music/beauty/тарантино-3.mp3″,true);

mysound.setVolume(30);

mysound.start();

}

Второй вариант

on(release) {

mysound = new Sound();

mysound.attachSound(«mymus1″); // этот вариант работает не всегда

mysound.setVolume();

mysound.start(1,6);

}

Видео

Импорт видео осуществляется с помощью мастера – диалогового окна Wizard. Если фильм нужен не весь, то можно вырезать ненужные кадры, оставив лишь то, что необходимо. Фильм можно совмещать с другими объектами flash, но размещать их следует на разных слоях.

1. Импортируйте фильм в библиотеку текущего документа. Если это возможно, сразу откроется диалоговое окно мастера. Если появится сообщение, что файл нельзя прочитать, следовательно, нужно выбрать другой фильм или видеозапись.

2. Перенесите импортируемый файл на сцену.

3. По желанию добавьте звук, однако некоторые видео импортируются вместе со звуком.

Публикация документов

Разработка Flash-документа завершается его публикацией, т.е. созданием выходных файлов, которые будут воспроизводиться в проигрывателе или браузере. Перед публикацией необходимо оптимизировать и протестировать документ.

Оптимизация. Цель оптимизации документа в уменьшение объема его файла при хорошем качестве его графического содержания.

  1. Частота кадров. При оптимизации обращают внимание на частоту кадров. По умолчанию она равна 12 fps, для качественной анимации требуется 16-30 fps. Увеличение частоты кадров требует большей производительности компьютера. Для повышения качества воспроизведения, особенно на слабом компьютере,  можно уменьшить размеры видимой области мультфильма. Рекомендуется использовать один символ, который содержит много мелких объектов, чем много символов мелких объектов. При публикации во Flash есть возможность указать значение параметра Quality (качество).

  2. Звук. Использование звука сильно увеличивает размер файла. В параметрах публикации (Publish Setting) можно указать тип компрессии и качество звука. Стереозвук будет занимать в два раза больше места, чем моно. Звук с высокой частотой дискретизации занимает больше места, частоту дискретизации можно понижать, ее повышение не улучшит качество звука.

Тестирование. В результате выполнения команд тестирования (Control-Test Movie или Control – Test Scene) происходит компиляция текущего документа (fla-файла) и создание SWF-файла, который хранится на диске и открывается в окне проигрывателя.  Команда Профайлер пропускной способности (View-Bandwidth Profiler) позволяет оценить время и характеристики выполнения некоторых функций. Вызов команды возможен для SWF-файла. При выполнении команды окно проигрывателя делится на три части. В верхней левой части указываются: размеры области экрана, занимаемой документом, частота кадров, объем SWF-файла, длительность воспроизведения, количество кадров и время загрузки до начала воспроизведения, пропускная способность канала передачи (модема), текущее состояние. В правой верхней части окна находится гистограмма распределения объема документа по кадрам. Красная линия – это критический уровень объема кадра. Кадр, имеющий больший объем, вызывает задержку воспроизведения документа. Мышью можно переместить ползунок на нужный кадр и в нижней части окна отобразится содержимое этого кадра. Чтобы выйти из режима тестирования нужно закрыть окно профайлера.

Параметры публикации. Выполните команду File-Publish Setting. На вкладке Format указываются форматы публикации. Параметры форматов Flash и HTML указываются на расположенных рядом вкладках. Button up – первым загружается самый нижний слой.

Формат HTML. Для публикации Flash-документа в Интернете необходим HTML-файл с расширением .html или .htm, содержащий специальные инструкции языка HTML – тэги. С помощью тэгов в HTML-документ устанавливается Flash-проигрыватель и в него загружается SWF-файл. Параметры формата: Template (Шаблон) – шаблон, по которому создается HTML-файл, Dimensions (размеры) – устанавливает размеры области web-страницы, отводимой под Flash-документ, Window Mode (режим окна) – определяет как окно документа взаимодействует с оставшейся частью  web-страницы, HTML Alignment (выравнивание) – определяется как будет выравниваться документ по отношению к окну браузера.

Изображения можно хранить в форматах GIF – 256 цветов и возможность хранить анимированные изображения, JPEG – сжатие изображения с потерей качества, рекомендуется для хранения окончательных изображений, PNG – переносимая графика для сети с глубиной цвета 24 и 48 бит, сжимает изображение без потерь, рекомендуется для небольших многоцветных изображений с мелкими картинками.

Задание. Подготовьте к публикации ранее созданные наиболее функционально насыщенные документы (не менее четырех). Если при просмотре HTML-кода в блокноте  кириллица не читается, необходимо в тэге <meta > вместо charset=koi8-r написать charset=windows-1251 и переписать  нечитаемые кириллические имена с помощью кириллицы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]