툴팁이있어서 SHIFT 키를 누르고 있으면 더 자세한 정보를 표시하고 싶습니다. 다음 코드는 지금까지 작동합니다WoW Addon - 키를 누르는 동안의 동적 툴팁
function myAddonFrame_OnEnter(self)
myAddon_GenerateTooltip(self)
end
function myAddonFrame_OnLeave(self)
GameTooltip:Hide()
end
function myAddon_GenerateTooltip(self)
GameTooltip:SetOwner(self or UIParent, "ANCHOR_LEFT")
GameTooltip:SetText(“myAddon”, 0.7, 0, 1)
GameTooltip:AddLine(" ", 1, 1, 1)
if IsShiftKeyDown() then
-- Show some more details, if the SHIFT key is pressed.
GameTooltip:AddLine(“Some detailed stuff about god and the world.”, 1, 1, 1)
GameTooltip:AddLine(“Even more great stuff to read.”, 0.9, 0.8, 0.1, 1)
else
-- Basic information to be displayed when no button is pressed.
GameTooltip:AddLine(“Some basic information. Yaaay!“, 1, 1, 1)
GameTooltip:AddLine(" ", 1, 1, 1)
GameTooltip:AddLine(“Hold SHIFT for more information…”, 0.5, 0.5, 0.5)
end
GameTooltip:Show()
end
그러나 Shift 키가 유지되는 경우에만 이렇게 마우스가 myAddonFrame을 가져갈 전에. 또한 마우스 커서가 myAddonFrame에 남아있는 한 SHIFT를 해제 한 후에도 자세한 정보를 표시합니다. 그러나 나는 그것이 역동적 이길 원한다! 여기
내 질문은 :
가 어떻게 마우스 커서가 프레임에 유지하면 툴팁이 SHIFT 키에 따라 자체를 새로 만들 수 있습니까?
와우에서 항목 위로 마우스를 가져 가면 Shift 키를 누르고있는 동안 만 해당 항목이 현재 착용하고있는 항목과 비교됩니다. 같은 툴팁 내에서 정확하게이 효과를 원합니다.
누군가가 올바른 방향으로 나를 밀어 줄 수 있기를 바랍니다. MODIFIER_STATE_CHANGED을 사용해 보았지만 작동시키지 못했습니다.
우리가 toolips에 대해 이야기하는 동안아, 그리고 ... 여기에 보너스 질문 :
이 그들에게 약간의 서식을 가능은? 굵은 체, 이탤릭체, 폰트 크기, 줄의 한 단어에 대한 색 변경 등? 나는 특별한 것을 찾지 못했다 here (wowprogramming.com),하지만 아마도 그것을 간과했다. 이 솔루션에 관심이있는 사람의 경우이 해결
--- ---
:
나는 Nathanyel의 코드를 사용하고 조금을 수정합니다. 필자는 모든 프레임에 대해 하나의 XML 파일을 사용하고 기능에 대해서만 하나의 해당 LUA 파일을 사용하기 때문에 새로운 프레임을 만들고 싶지 않았습니다. 그러나 동적 툴팁에도 기존의 myAddonFrame
을 사용하는 방법을 찾지 못했습니다. 위에서
내 코드는 완벽하게 작동하고 난 그냥 다음을 추가했다 : 그것은
-- [ALL THE CODE ABOVE!]
function myAddonFrame_OnLoad(frame)
frame:RegisterEvent("MODIFIER_STATE_CHANGED") -- Needed for the dynamic tool tip.
end
function myAddonFrame_OnEvent(frame, event, ...)
-- Fired, when any keyboard key is pressed.
local key, state = select(1, ...)
if (event == "MODIFIER_STATE_CHANGED") then
-- Switch the dynamic tooltip when the SHIFT key is held.
if myAddonFrame:IsMouseOver() and ((key == "LSHIFT") or (key == "RSHIFT")) then
myAddon_GenerateTooltip(frame)
end
end
end
의 그! 생각을위한 음식에 대한 Nathanyel에게 감사드립니다. :)
MODIFIER_STATE_CHANGED를 시도하는 동안 나는 항상 동일한 프레임을 사용했습니다. 실제로이 추가 기능은 지금 단 하나의 단일 프레임으로 구성됩니다. 그것은 항상 문제 였을 것입니다. 나는 당신의 접근 방식을 오늘 밤 시도하고 내 결과를 말할 것입니다. 지금 고마워! :) – nehegeb
글쎄, 정말 도움이! 위의 질문에 최종 해결책을 통합했습니다. 다시 한 번 감사드립니다! – nehegeb