I'd probably just use the
ZO_AlphaAnimation class on an empty texture control with a color.
Something like this:
Lua Code:
local overlay = GuiRoot:CreateControl("$(parent)MyOverlay", CT_TEXTURE)
overlay:SetColor(r, g, b, startAlpha)
overlay:SetAnchorFill(GuiRoot)
local animation = ZO_AlphaAnimation:New(overlay)
animation:PingPong(startAlpha, endAlpha, duration, loopCount, callback)