Воскресенье, 13.07.2025, 22:10
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Меню текстур
temichДата: Суббота, 04.08.2012, 14:32 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 74
Награды: 0
Репутация: 0
Статус: Offline
Всем привет. Сегодня я вам расскажу, как создать меню смены текстур для фреймы. Такое меню очень может разнообразить ваш аддон. В этом гайде я буду использовать 2 кнопки, 1 фрейму и функцию с двумя условиями cool
Инструкция по созданию toc файла - клик
Ссылка на предыдущие статью - Обновление аддона
Скачать notepad++ - Скачать
API функции - WoWJP API

Создадим фрейму над которой будем эксперементи

Code
myframes = CreateFrame("FRAME","my_Frame",UIParent);

Мы создали фрейму приравняли ее к переменной "myframes".

Дальше указываем размер фреймы, я указал 460 на 150 вы указывайте какой хотите размер.

Code
myframes:SetWidth(460);
myframes:SetHeight(150);

Теперь создаем текстуру фрейме которая будет по умолчанию.

Code
myframes:SetBackdrop({bgFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Background", edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Border",});

Логичней было бы в массив ее засунуть но можно и так. (А зачем в массив? - Ну, допустим, у нас очень много фрейм, и чтобы не писать эту строчку легче было бы просто написать название массива *Злобная ухмылка*)

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

Code
myframes:SetPoint("CENTER");

Такс... фрейму мы создали. (Передвиг фреймы делаем сами если нужно)

Теперь перейдем к кнопкам (но лучше сделать это все на выдвигающемся меню... но так как я про него не говорил не разу, делать будем на кнопках)

Code
testure = CreateFrame("Button",nil,myframes,"OptionsButtonTemplate")
testure:Enable(true)
testure:SetWidth(67)
testure:SetHeight(30)
testure:SetText("Применить")
testure:SetPoint("CENTER",myframes,-125,0)
testure:SetScript("OnClick",function() testuring("1") end)

Первая кнопка. Первая кнопка будет нужна нам для активации новых текстур. Как вы заметили, она включает функцию "testuring". После название функции я пишу название условия в скобках, это нужно чтоб запустить его. (Это можно сделать без условий, просто в 2х функциях. Ну мы же не из индии *Смех*, так что сделаем через условие.)

Создаем вторую кнопку которая будет делать текстуру по умолчанию.

Code
retesture = CreateFrame("Button",nil,myframes,"OptionsButtonTemplate")
retesture:Enable(true)
retesture:SetWidth(67)
retesture:SetHeight(30)
retesture:SetText("Отмена")
retesture:SetPoint("CENTER",myframes,125,0)
retesture:SetScript("OnClick",function() testuring("2") end)

Теперь перейдем к самой функции с условиями:

Название функции, как вы уже поняли будет "testuring".

Создаем функцию testuring с аргументом MSG.

Code
function testuring(msg)

Конечно, вместо MSG, можно сунуть туда что угодно но я сделал как делаю всегда

Дальше делаем условие под названием "1"

Code
if msg == "1" then

Теперь делаем то что это условие будет выполнять

Первое, что я туда засунул это сообщение что текстура установлена.

Code
print("Текстура 1 установлена.")

Второе это сама текстура на которую мы будем менять.

Code
myframes:SetBackdrop({bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",});

Второе условие возвращает оригинальную текстуру.

Code
elseif msg == "2" then
print("Текстура отменена")
myframes:SetBackdrop({bgFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Background", edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Border",});

Теперь закрываем функцию двумя ендами.

Code
end end

И все наш скрипт готов!

Весь код:

Code
myframes = CreateFrame("FRAME","my_Frame",UIParent);
myframes:SetWidth(460);
myframes:SetHeight(150);
myframes:SetBackdrop({bgFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-background", edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Border",});
myframes:SetPoint("CENTER");

testure = CreateFrame("Button",nil,myframes,"OptionsButtonTemplate")
testure:Enable(true)
testure:SetWidth(67)
testure:SetHeight(30)
testure:SetText("Применить")
testure:SetPoint("CENTER",myframes,-125,0)
testure:SetScript("OnClick",function() testuring("1") end)

retesture = CreateFrame("Button",nil,myframes,"OptionsButtonTemplate")
retesture:Enable(true)
retesture:SetWidth(67)
retesture:SetHeight(30)
retesture:SetText("Отмена")
retesture:SetPoint("CENTER",myframes,125,0)
retesture:SetScript("OnClick",function() testuring("2") end)

function testuring(msg)
if msg == "1" then
print("Текстура 1 установлена.")
myframes:SetBackdrop({bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",});
elseif msg == "2" then
print("Текстура отменена")
myframes:SetBackdrop({bgFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Background", edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Border",});
end
end
 
  • Страница 1 из 1
  • 1
Поиск: