Понедельник, 02.12.2024, 15:12
Главная » 2012 » Сентябрь » 6 » [Разработка аддонов] Анимация
13:19
[Разработка аддонов] Анимация
Всем привет. В этой статье я мы будем учится делать анимацию в аддоне. Я покажу вам 3 вида анимации: Прозрачность, Увеличение/Уменьшение, Повороты



Инструкция по созданию toc файла - клик
Ссылка на предыдущие статью - Редактирование сообщения
Скачать notepad++ - Скачать
API функции - WoWJP API

Для начала нам нужно определится, для чего и какая нам нужна анимация.

Первым делом создаем фрейму.

Code
local f = CreateFrame("Frame", nil, UIParent)
f:SetWidth(32)
f:SetHeight(32)
f:SetPoint("CENTER")


Фрейму делаем без текстур и небольшого размера.

Дальше делаем текстуру для фреймы.

Code
local tx = f:CreateTexture(nil, "BACKGROUND")
tx:SetAllPoints()
tx:SetTexture("interface/icons/inv_mushroom_11")


Теперь перейдем к создании анимации... "Группа" анимации создается как фрейма но проще.

Code
f.anigroup = f:CreateAnimationGroup()


Создаем эффект вращения.

Code
f.spin = f.anigroup:CreateAnimation("Rotation")


Дальше указываем "Ордер". Ордер это как последовательность действий т.е если у анимации поворота будет ордер 1 у анимации увеличения будет ордер 2, то будет вначале включатся анимация поворота а потом анимация увеличения. Если указать ордер одинаковый у 2х элементов анимации то они будут запускаться одновременно.

Code
f.spin:SetOrder(1)


Дальше указываем время вращения в нашем случаи будет 0.8 секунды.

Code
f.spin:SetDuration(0.8)


Вращение

Code
f.spin:SetDegrees(720)


Все! Первый эффект анимации готов. Теперь переходим к эффекту увеличения.

Создаем эффект.

Code
f.scale = f.anigroup:CreateAnimation("Scale")


Указываем "Ордер" у нас он также будет 1 как и в первом эффекте.

Code
f.scale:SetOrder(1)


Задаем время увеличения у нас это будет 1 секунда.

Code
f.scale:SetDuration(1)


Дальше указываем ширину и высоту.

Code
f.scale:SetScale(5,5)


Теперь переходим к эффекту исчезания.

Создаем эффект.

Code
f.fade = f.anigroup:CreateAnimation("Alpha")


Дальше указываем "Ордер" его номер будет "2"

Code
f.fade:SetOrder(2)


Указываем время исчезания.

Code
f.fade:SetDuration(0.5)


Добавляем фактор.

Code
f.fade:SetChange(-1)


Добавляем окончание периода это 0.5 секунды.

Code
f.fade:SetEndDelay(0.5)


Все теперь указываем параметр который будет отвечать за то сколько раз будет проигрываться наша анимация.
У данного параметра есть 2 значения BOUNCE и NONE
BOUNCE - Повторение анимации
NONE - Воспроизведении анимации 1 раз.

Code
f.anigroup:SetLooping("BOUNCE")


Дальше добавляем элемент который будет запускать нашу "Аним группу"

Code
f.anigroup:Play()


Весь код:

Code
local f = CreateFrame("Frame", nil, UIParent)
f:SetWidth(32)
f:SetHeight(32)
f:SetPoint("CENTER")
         
local tx = f:CreateTexture(nil, "BACKGROUND")
tx:SetAllPoints()
tx:SetTexture("interface/icons/inv_mushroom_11")
         
f.anigroup = f:CreateAnimationGroup()     
         
f.spin = f.anigroup:CreateAnimation("Rotation")     
f.spin:SetOrder(1)
f.spin:SetDuration(0.8)
f.spin:SetDegrees(720)     
         
f.scale = f.anigroup:CreateAnimation("Scale")
f.scale:SetOrder(1)     
f.scale:SetDuration(1)     
f.scale:SetScale(5,5)     
         
f.fade = f.anigroup:CreateAnimation("Alpha")
f.fade:SetOrder(2)     
f.fade:SetDuration(0.5)
f.fade:SetChange(-1)     
f.fade:SetEndDelay(0.5)
         
f.anigroup:SetLooping("BOUNCE")
f.anigroup:Play()


Удачи вам в создании аддонов.
п.с Код не мой, наткнулся на него случайно и решил написать про него гайд. Выражу большую благодарность автору данного кода happy к сожалению ник его мне не известен.

Просмотров: 514 | Добавил: doblest-chest | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Доска объявлений омск 2009 Создать объявление на компьютерные улуги набор текста Дать объявление автомата Доска объявлений на джумла 2012 Доска объявлений запчасти одесса Подать объявление бесплатно без регестрации в новосибирске Продам забугорную доску объявлений Доска объявлений прицеп бу Поиск гатчина дать объявление Объявление 30 инструкция продать Подать объявление о продаже участка екатеринбург Дать объявление о продаже офиса Подать объявление бесплатно спб строительство Недвижимость рязань доска объявлений Альянс агенство недвижимости дать объявление Подать объявление об отдаже животного Доска объявлений санкт петербург продажа авто Продажа бизнеса подать объявление Подать объявление о продаже автомобиля безплатно Разместить объявление на продажу коттеджа в челябинске Ищу работу водителя разместить объявления Подать бесплатное объявление в официальное сми Продать участок бесплатные объявления Кирово чепецкий сайт доска объявлений Доска объявлений запчасти бу ваз Доска объявлений горячая линия недвижимость Доска частных объявлений азербайджан Дать объявление сдам комнату г москва Дать объявление о продаже в челябинске