ツールチップがあり、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
しかし、マウスがmyAddonFrameを置い前にSHIFTキーが保持されている場合のみ動作。また、マウスカーソルがmyAddonFrame上にある限り、SHIFTを放しても詳細情報が表示されます。しかし、私はそれがダイナミックにしたい!ここ
私の質問は:
どうすればマウスカーソルが枠にとどまるとき、ツールチップは、SHIFTキーに従って自分自身をリフレッシュすることができますか?
私はWoWのアイテムにカーソルを置いて、SHIFTキーを押している間だけ、そのアイテムが現在着用しているアイテムと比較されるようなことに気付いています。私はちょうど同じツールチップ内で、この効果を正確に欲しいです。
誰かが正しい方向に私を押し込むことができることを願っています。私はMODIFIER_STATE_CHANGEDを使ってみましたが、うまく動作しませんでした。
ああ、と私たちはtoolipsについて話している間に...ここにボーナス質問です:
は彼らに少しをフォーマットすることが可能ですか?太字、イタリック、フォントサイズ、ライン内の1つの単語のカラーチェンジなど?私は特にhere (wowprogramming.com)を見つけられませんでしたが、多分私はそれを見落としました。溶液に関心ものについて解か
--- ---
:
IはNathanyelのコードスニペットを使用し、それを少し調整しました。私はすべてのフレームに1つのXMLファイルを使用し、関数に対応する1つの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に試してみると、私はいつも同じフレームを使用していました(実際、このアドオンは現在1つの単一フレームのみで構成されています)。それはいつも問題だったかもしれません。私はあなたのアプローチを今夜試してみて、結果を教えてあげます。ありがとうございました! :) – nehegeb
まあ、それは本当に助けて!私は上記の質問に最終的な解決策を統合しました。再度、感謝します! – nehegeb