Не получается изменить текстуру, обращение по имени возвращает 0. При создании есть 2 потомка. Не могу понять что не так.
Версия 1.26 + ujApi
FDF
Версия 1.26 + ujApi
FDF
Frame "SIMPLESTATUSBAR" "TestBar" {
Width 0.07,
Height 0.025,
BarTexture "Replaceabletextures\Teamcolor\Teamcolor00.blp",
Layer "BACKGROUND" {
Texture "TestBarBackground" {
File "Replaceabletextures\Teamcolor\Teamcolor15.blp",
}
}
Frame "SIMPLEFRAME" "TestBarFrame" {
SetAllPoints,
DecorateFileNames,
Layer "ARTWORK" {
String "TestBarText" INHERITS "TestBarTextTemplate" {
Text "BarText",
}
}
}
}
CODE
function Trig_LoadMainFrame_Actions takes nothing returns nothing
local framehandle window = CreateSimpleFrame("TestBar", GetOriginFrame(ORIGIN_FRAME_GAME_UI,0), 1)
local framehandle bar = GetFrameByName("TestBarBackground",1)
call SetFrameAbsolutePoint(window, FRAMEPOINT_CENTER, 0.3, 0.3)
call SetFrameSize(window, 0.05, 0.05)
call SetFrameTexture(window,"ReplaceableTextures\\CommandButtons\\BTNHeroPaladin.blp",0, true)
call SetFrameTexture( bar, "ReplaceableTextures\\CommandButtons\\BTNFootman.blp", 0, true)
call printi("ID", GetHandleId(bar))
call printi("count", GetFrameChildrenCount(bar))
endfunction
Принятый ответ
есть другой способ (то, что ты используешь)
Кратко: у вам могут быть созданы очень много фреймов с одного шаблона. Но доступ к нему можно получить один раз - при создании. Обычно мы указываем в нативках создания имя шаблона. О чем я говорю? О том, что BlzGetFrameByName получает фрейм только в момент создания.
Кратко: у вам могут быть созданы очень много фреймов с одного шаблона. Но доступ к нему можно получить один раз - при создании. Обычно мы указываем в нативках создания имя шаблона. О чем я говорю? О том, что BlzGetFrameByName получает фрейм только в момент создания.
local backdrop = BlzCreateFrame("MyBackdropTemplate", gameUI, 0, 0)
local my_text = BlzGetFrameByName("MyTEXT") //потомок
обратиться к MyTEXT не просто. Поэтому нужно записывать все фреймы в переменные.
Мне показалась, что функция GetFrameByName странной, у нее еще в аргументах индекс откуда-то берется. В рефе такого не было. Попробуй другую функцию. Тут море функц. Наверн какая особенность рефа
native GetFrameByName takes string frameName, integer createContext returns framehandle // searches for any frame, priority is as follows: CFrame > CSimpleFrame > CSimpleFontString > CSimpleTexture
native GetCFrameByName takes string frameName, integer createContext returns framehandle
native GetCSimpleFontStringByName takes string frameName, integer createContext returns framehandle
native GetCSimpleTextureByName takes string frameName, integer createContext returns framehandle
native GetCSimpleFrameByName takes string frameName, integer createContext returns framehandle
native GetFrameName takes framehandle whichFrame returns string
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован MpW
Отредактирован MpW
Кратко: у вам могут быть созданы очень много фреймов с одного шаблона. Но доступ к нему можно получить один раз - при создании. Обычно мы указываем в нативках создания имя шаблона. О чем я говорю? О том, что BlzGetFrameByName получает фрейм только в момент создания.