Главная » 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() Удачи вам в создании аддонов. п.с Код не мой, наткнулся на него случайно и решил написать про него гайд. Выражу большую благодарность автору данного кода к сожалению ник его мне не известен. | |
|
Всего комментариев: 0 | |