hello all,
i've written this little combatindicator for my interface.
what it should basically do is to scroll down from the top, stay the for combat, and scroll up when combat ends.
it's the first time i use the "translation" animation.
Code:
BEUCombat1 = CreateFrame("FRAME", nil, UIParent)
BEUCombat1:SetWidth(100)
BEUCombat1:SetHeight(100)
BEUCombat1:SetPoint("BOTTOM", UIParent, "TOP", 0, 0)
BEUCombat1:SetFrameStrata("BACKGROUND")
BEUCombat1:SetFrameLevel(0)
BEUCombat1:Show()
BEUCombat1Tex = BEUCombat1:CreateTexture()
BEUCombat1Tex:SetAllPoints()
BEUCombat1Tex:SetTexture("Interface\\AddOns\\!beatemupmedia\\statusbar\\white.tga")
BEUCombat1Tex:SetVertexColor(1, 1, 0, 1)
BEUCombat2 = CreateFrame("FRAME", nil, UIParent)
BEUCombat2:SetWidth(100)
BEUCombat2:SetHeight(100)
BEUCombat2:SetPoint("BOTTOM", UIParent, "TOP", 0, -100)
BEUCombat2:SetFrameStrata("BACKGROUND")
BEUCombat2:SetFrameLevel(0)
BEUCombat2:Hide()
BEUCombat2Tex = BEUCombat2:CreateTexture()
BEUCombat2Tex:SetAllPoints()
BEUCombat2Tex:SetTexture("Interface\\AddOns\\!beatemupmedia\\statusbar\\white.tga")
BEUCombat2Tex:SetVertexColor(1, 0, 1, 1)
BEUCombat1.ag = BEUCombat1:CreateAnimationGroup()
BEUCombat1.ag.a1 = BEUCombat1.ag:CreateAnimation("Translation")
BEUCombat1.ag.a1:SetSmoothing("OUT")
BEUCombat1.ag.a1:SetOffset(0, -72)
BEUCombat1.ag.a1:SetDuration(2)
BEUCombat1.ag:SetLooping("NONE")
BEUCombat2.ag = BEUCombat2:CreateAnimationGroup()
BEUCombat2.ag.a2 = BEUCombat2.ag:CreateAnimation("Translation")
BEUCombat2.ag.a2:SetSmoothing("OUT")
BEUCombat2.ag.a2:SetOffset(0, 100)
BEUCombat2.ag.a2:SetDuration(2)
BEUCombat2.ag:SetLooping("NONE")
BEUCombat1:RegisterEvent("PLAYER_ENTERING_WORLD")
BEUCombat1:RegisterEvent("PLAYER_REGEN_DISABLED")
BEUCombat1:RegisterEvent("PLAYER_REGEN_ENABLED")
BEUCombat2:RegisterEvent("PLAYER_ENTERING_WORLD")
BEUCombat2:RegisterEvent("PLAYER_REGEN_DISABLED")
BEUCombat2:RegisterEvent("PLAYER_REGEN_ENABLED")
BEUCombat1:SetScript("OnEvent", function(frame, event) if event == "PLAYER_ENTERING_WORLD" then BEUCombat1:Show() end end)
BEUCombat2:SetScript("OnEvent", function(frame, event) if event == "PLAYER_ENTERING_WORLD" then BEUCombat2:Hide() end end)
BEUCombat1:SetScript("OnEvent", function(frame, event)
if
event == "PLAYER_REGEN_DISABLED"
then
BEUCombat1.ag:Play()
BEUCombat1.ag:SetScript("OnFinished",function() BEUCombat2:Show() BEUCombat1:Hide() end)
elseif
event == "PLAYER_REGEN_ENABLED"
then
BEUCombat2.ag:Play()
BEUCombat2.ag:SetScript("OnFinished",function() BEUCombat1:Show() BEUCombat2:Hide() end)
end
end)
how can this be done better?
oh and one or two other questions.
why does the first frame pops up for like 0.1 sec after combat ends?
why do i have to set the offset from frame one to -72 to fit the textures together?
thx for helping