-Рубрики

 -Поиск по дневнику

Поиск сообщений в Т-Йоки

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 06.02.2011
Записей: 1525
Комментариев: 34
Написано: 1603


Как я делала урок "Снегопад с прилипанием снега"

Воскресенье, 26 Октября 2014 г. 12:57 + в цитатник
Цитата сообщения ВАТ
Снегопад с прилипанием., Урок. ActionScript 3




Мои пояснения к уроку.

!. Создайте новый документ с нужными размерами (у меня 700 на 500), с частотой кадров =25. Напишите основной класс Main и сохраните его в папке под названием, например, Снегопад (файл - сохранить как...)

2014-10-23_22h35_24 (600x418, 40Kb)

2. Нарисуйте несколько снежинок в программе или импортируйте их в библиотеку (я нарисавала 4 снежинки в фотошопе, применила тиснение и глянец). Перетащите их по очереди на сцену, выделите, измените размер (если нужно), выровняйте по центру
2014-10-24_11h38_30 (256x309, 17Kb)
и преобразуйте её в символ (это можно сделать так: а) нажать F8; б) Модификация - Преобразовать в символ; в) нажать правой клавишей на снежинку и в открывшемся окне нажать на Преобразовать в символ) с именем flake0, поставьте галочку в Экспорт для ActionScript
2014-10-23_23h05_07 (600x476, 41Kb)
Появится окно, нажмите ок
2014-10-23_23h12_46 (510x162, 17Kb)
Удалите символ со сцены. Так проделайте со всеми снежинками и присвойте flake1; flake2; flake3 и т.д. столько сколько будет у вас снежинок и не забудьте ставить галочки в Экспорт для ActionScript.
3. Создайте объект к которому будет прилипать снег, это может быть что угодно (автор взял текст), превратите его в символ (клип) с точкой регистрации в верхнем левом углу, дайте имя headTxt и поставьте галочку в Экспорт для ActionScript (как в снежинках), после чего удалите символ со сцены (если возьмёте текст, то не забудьте поставить динамический и внедрить шрифт).
2014-10-24_11h58_35 (400x307, 32Kb)
4. Перетащите на сцену картинку (или нарисуйте как в уроке что-нибудь где будет идти снег. Я взяла гогтовую картинку), превратите его в символ с точкой регистрации в левом верхнем углу, с именем и классом content (как снежинки и текст).
5. Создайте и сохраните в папке с проектом (Снегопад) 2 пустых as. файла, один назовите Main.as (это главный класс) и Flake.as (класс снежинок). Файл - Создать
2014-10-24_01h05_12 (366x191, 17Kb)
2014-10-23_23h38_391 (500x303, 20Kb)
6. Вставить в Flake.as код (описание кода почитайте в уроке)

package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
//Импортируем нужные пакеты
public class Flake extends Sprite {
//Объявление класса
private var sn:MovieClip;
//Ссылка на клип снежинки
private var ymax:Number;
//Высота документа
private var x0:Number;
//Стартовая х-координата снежинки
private var speed:Number;
//Скорость движения (величина задержки таймера)
private var angle:Number;
//Угол. Его проецируем на траекторию движения
private var scale:Number;
//Массштаб снежинки
private var tim:Timer;
//Таймер
private var targ:MovieClip;
//Ссылка на объект, к которому снежинка прилипает
private var movingFlag:int;
//Разрешение/Запрет движения
private var stopDelay:Number
//Продолжительность прилипания снежинки
//Конструктор. Аргументом является клип снежинки
public function Flake(arg:MovieClip):void {
//Запомним и кэшируем аргумент
sn=arg;
sn.cacheAsBitmap=true;
//Дефолтные установки для переназначаемых переменных
speed=100;
angle=0;
scale=1;
movingFlag=1;
//Снежинку – в дисплей список.
addChild(sn);
//Создание таймера
tim=new Timer(speed);
//События.
// Экземпляр класса добавлен на сцену
addEventListener(Event.ADDED_TO_STAGE, init);
//Отработал очередной интервал таймера
tim.addEventListener(TimerEvent.TIMER, moving);
}
//Эти методы (сеттеры) позволяют установить нужные свойства класса извне.
// Установка новой задержки таймера (скорости движения)
public function set _speed(arg:Number):void {
speed=arg;
tim.delay=speed;
stopDelay=speed;
}
//Угол
public function set _angle(arg:Number):void {
angle=arg;
}
//Массштаб
public function set _scale(arg:Number):void {
scale=arg;
this.scaleX=this.scaleY=scale;
}
// Целевой объект прилипания
public function set _target(arg:MovieClip){
targ=arg;
}
//Слушатели событий
/*Эта функция вызовется единожды, когда экземпляр класса будет добавлен на сцену.
Здесь выясним высоту документа, начальную х-координату и, запустив таймер, начнем движение.*/
private function init(e:Event) {
ymax=stage.stageHeight;
x0=this.x;
tim.start();
}
/* Функция перемещения снежинки. Вызывается с каждым интервалом таймера
Двигаем снежинку, следим за пересечением с целевым объектом, прилипаем и отлипаем*/
private function moving(e:TimerEvent) {
/*Ось у. Если снежинка опустилась за пределы документа, переставим ее вверх, иначе опускаем с постоянной скоростью. Когда movingFlag=0, движение остановится*/
this.y>ymax?this.y=-10:this.y+=2*movingFlag;
/*Ось х. Вычисляем приращение, основанное на синусе угла, прибавляем его к стартовой координате и перемещаем объект по горизонтали*/
this.x=x0+Math.sin(angle/180*Math.PI)*80;
//Циклично меняем значение угла
angle+=scale*2*movingFlag;
angle%=360;
/*Если задан целевой объект, то проверим пересечение с ним.
Если пересечение есть, то остановим движение*/
targ==null?null:targ.hitTestPoint(this.x, this.y, true)?movingFlag=0:movingFlag=1;
/*Если движение остановлено, уменьшаем счетчик паузы. Когда счетчик обнулится,
возобновим движение, а счетчик обновим */
!movingFlag?stopDelay?stopDelay--:movingFlag=1:stopDelay=speed;
}
}
}
7. Файл - Сохранить как...

2014-10-24_01h18_06 (600x524, 63Kb)

Класс Flake.as готов. Чтобы проверить его, в файле Main.as, вставьте этот код:

package{
import flash.display.*;
public class Main extends Sprite{
public function Main():void{
var sn:Flake=new Flake(new flake0());
sn.x=200;
sn.y=10;
addChild(sn)
}
}
}

Протестируйте ролик. Если вы увидите одинокую снежинку, падающую по синусоиде, то вы всё сделали правильно, можно продолжать дальше, а этот код из Main.as удалить .
8. Вставляем код в главный класс документа Main.as (как, что и для чего почитайте в уроке).
Взять его можно отсюда Вложение

10. Файл - Сохранить как...

2014-10-24_03h03_30 (600x441, 80Kb)
2014-10-24_03h05_30 (625x480, 65Kb)

Протестируйте ролик. Сохраните в fla (файл - сохранить как...) и в swf (файл - экспорт - экспортировать ролик). Вот и всё.
Рубрики:  ФОТОШОП/Уроки фотошоп
Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку