temich | Дата: Суббота, 04.08.2012, 14:32 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 74
Статус: Offline
| Всем привет. Сегодня я вам расскажу, как создать меню смены текстур для фреймы. Такое меню очень может разнообразить ваш аддон. В этом гайде я буду использовать 2 кнопки, 1 фрейму и функцию с двумя условиями Инструкция по созданию 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
|
|
| |