|
Форум Обсуждение аддонов Разработка аддонов WoW Работа с EditBox |
Работа с EditBox |
Здравствуйте. Сегодня я расскажу как делать EditBox и как работать с ним. EditBox это поле для ввода.
Инструкция по созданию toc файла - тык Ссылка на предыдущие статью - тык Скачать notepad++ - тык API функции - тык Давайте рассмотрим "EditBox" на подобии чата. Вы пишите что вам нужно в editbox и жмете "Enter" и оно отправляет сообщение в чат. Ну чтож начнем. Создадим фрейму на которой будет располагаться EditBox: Code myframes = CreateFrame("FRAME","my_Frame",UIParent); Дальше указываем толщину и высоту фреймы. Code myframes:SetWidth(460); -- Толщина. Code myframes:SetHeight(150); -- Высота. Задаем текстуру (SetBackdrop) для фреймы. Code myframes:SetBackdrop({bgFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Background", edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Border",}); Хочу сказать пару слов о текстурах. Вы можете задать их через переменную. Например: Code texture = { bgFile = "texture", edgeFile = "texture", } И в фрейме просто указать название переменной. Дальше задаем позицию фреймe. Code myframes:SetPoint("CENTER"); Теперь можем переходить к самому EditBox. Создаем фрейму "EditsBox" в типе фреймы указываем "EditBox" и привязываем нашу фрейму к фрейме которую только что делали. Code EditsBox = CreateFrame("EditBox",nil,myframes) Теперь указываем высоту и толщину едитбокса. Code EditsBox:SetWidth(300) -- Толщина. Code EditsBox:SetHeight(24) -- Высота. Теперь задаем шрифт. Code EditsBox:SetFontObject(GameFontNormal) Дальше указываем текстуру для EditBox. Code EditsBox:SetBackdrop(GameTooltip:GetBackdrop()) Добавляем цветов: Code EditsBox:SetBackdropColor(0, 0, 0, 0.8) EditsBox:SetBackdropBorderColor(0.6, 0.6, 0.6, 1) Указываем расположение едитбокса. Code EditsBox:SetPoint("CENTER",myframes,0,5) Этим мы говорим клиенту что наш едитбокс долен располагаться в фрейме myframes по средине. Ну и завершающим штрихом указываем функцию. Code EditsBox:SetScript( "OnEnterPressed", function() print(EditsBox:GetText()) end) Данная функция отправляет в print сообщение которое мы указали в едитбоксе. Нажат ли ентер контролирует функция "OnEnterPressed". Хочу напомнить что функции в фрейме обязательно нужно закрывать скобочкой. Например: Code end) На этом все. Удачи вам. [download]Шаблон - для WoW 3.3[/download]
Маме беркута привет!
|
| |||
| |||