• Страница 1 из 1
  • 1
Меню текстур
Nyll
Всем привет. Сегодня я вам расскажу, как создать меню смены текстур для фреймы. Такое меню очень может разнообразить ваш аддон. В этом гайде я буду использовать 2 кнопки, 1 фрейму и функцию с двумя условиями smile



Инструкция по созданию 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",});


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

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

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, можно сунуть туда что угодно но я сделал как делаю всегда smile

Дальше делаем условие под названием "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 отредактировано Nyll - Суббота, 04.08.2012, 17:47
Juline
!1
1. А скриншоты будут?
Пару десятков ошибок в пунктуации. Понимаю, что у тебя сломалась кнопка с запятой, но скопировать и вставить можно ведь?
Quote (Nyll)
Второе это сама текстура на которую мы будем менять.

, которую
Quote (Nyll)
Теперь делаем то что это условие будет выполнять

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

Первое, что
Quote (Nyll)
Конечно за место MSG, можно сунуть туда что угодно но я сделал как делаю всегда

Конечно, ВМЕСТО можно сунуть туда что угодно, но я сделал как делаю всегда
Quote (Nyll)
Название функции как вы уже поняли будет "testuring".

, как вы уже поняли
Quote (Nyll)
Как вы заметили она включает

как вы заметили,
Quote (Nyll)
Это можно сделать без условий просто в 2х функциях ну мы же не из индии *Смех* так что сделаем через условие

без условий, просто в 2х функциях. Ну мы же не из индии *Смех*, так что сделаем через условие.
Quote (Nyll)
но так как я про него не говорил не разу делать будем на кнопках

но так как я про него не говорил не разу, делать будем на кнопках
Quote (Nyll)
Ну допустим у нас очень много фрейм и чтобы не писать

Ну, допустим, у нас очень много фрейм, и чтобы не писать
Quote (Nyll)
Сегодня я вам расскажу как создать меню смены текстур для фреймы.

Сегодня я вам расскажу, как создать
Quote (Nyll)
Инструкция по созданию toc файла - тык
Ссылка на предыдущие статью - тык
Скачать notepad++ - тык
API функции - тык

Вместо "тык" хорошо бы заголовок страницы, на которую ведет ссылка...
Сообщение # 2 написано 03.08.2012 в 12:58
0niwone
WoW-Carnge <Dev>
Juline, плющит Донна smile
Спасибо, понадобится

Добавлено (03.08.2012, 13:04)
---------------------------------------------
Но скрины все равно выложи

Пользуюсь гарант услугами pwlvl.ru
Сообщение # 3 написано 03.08.2012 в 13:04
Nyll
Quote (Juline)
1. А скриншоты будут?

Думаю тут все и так ясно. Но я запишу видео а не скриншот smile
Маме беркута привет!
Сообщение # 4 написано 03.08.2012 в 13:10
Juline
!1
Quote (Nyll)
Но я запишу видео а не скриншот

Да, это еще лучше будет.

Quote (Nyll)
Передвиг фреймы делаем сами если нужно

Передвигаем?
Quote (Nyll)
В моем случаи

Случае?
Quote (Nyll)
я указал 460 на 150 вы указывайте какой хотите размер.

, вы указывайте...
Quote (Nyll)
Мы создали фрейму приравняли ее к переменной "myframes".

Мы создали фрейму, приравняли

Сейчас хоть более-менее человеческий вид.
Quote (Nyll)
Логичней было бы в массив ее засунуть но можно и так
Сообщение # 5 написано 03.08.2012 в 13:33
Forumwowjpp
Скаут
Жду видео. А то без картинки делать что-то крайне лень.
Сообщение # 6 написано 04.08.2012 в 01:14
Nyll
Держите видео.

Маме беркута привет!
Сообщение # 7 написано 04.08.2012 в 17:48
Juline
!1
Quote (Nyll)
Держите видео.

Так же лучше. Теперь код люди будут пробовать реализовать в пару раз чаще.
Сообщение # 8 написано 05.08.2012 в 02:08
Vladyxxa
Капрал
я конечно прошу прощение за оффтоп, но нулл ты занялся балаболией(без обид)?
насколько я помню(вижу в данный момент) ты обещал в следующей теме совершенно другое, или я ошибаюсь?
Сообщение # 9 написано 05.08.2012 в 05:27
Nyll
Quote (Vladyxxa)
я конечно прошу прощение за оффтоп, но нулл ты занялся балаболией(без обид)?
насколько я помню(вижу в данный момент) ты обещал в следующей теме совершенно другое, или я ошибаюсь?

Уважаемый, я думал что то можно реализовать на пиратке, но потом я узнал что нельзя smile А только для оффы я думаю смысла делать нету.
Маме беркута привет!
Сообщение # 10 написано 05.08.2012 в 10:30
Forumwowjpp
Скаут
Про что он хочет про то и делает гайды.
Сообщение # 11 написано 06.08.2012 в 00:58
Vladyxxa
Капрал
Quote (Nyll)
Уважаемый, я думал что то можно реализовать на пиратке, но потом я узнал что нельзя А только для оффы я думаю смысла делать нету.

понятно, извините за наезд.
Quote (Forumwowjpp)
Про что он хочет про то и делает гайды.

вас не спрашивали. Прошу вас не влазить, веть это не красиво с вашей стороны.
Сообщение # 12 отредактировано Vladyxxa - Понедельник, 06.08.2012, 20:25
  • Страница 1 из 1
  • 1
Поиск: