Wowpedia
Advertisement
Wowpedia
237,048
pages
Game Flavors
Links
Patch
Added in 1.10.0 / 1.13.2

Creates a new Frame object.

frame = CreateFrame(frameType [, name, parent, template, id])

Arguments

frameType 
string - Type of the frame; e.g. "Frame" or "Button".
name 
string? - Globally accessible name to assign to the frame, or nil for an anonymous frame.
parent 
Frame? - Parent object to assign to the frame, or nil to be parentless; cannot be a string. Can also be set with Region:SetParent()
template 
string? - Comma-delimited list of virtual XML templates to inherit; see also a complete list of FrameXML templates.
id 
number? - ID to assign to the frame. Can also be set with Frame:SetID()

Returns

frame 
Frame - The created Frame object or one of the other frame type objects.

Frame types

Possible frame types are available from the XML schema {UI.xsd at Townlong-YakFrameXML/UI.xsd at GitHub}:

Intrinsic frames may also be used:

Complex widgets:

Basic widgets with simple event handlers:

Details

  • Fires the frame's OnLoad script, if it has one from an inherited template.
  • Frames cannot be deleted or garbage collected, so it may be preferable to reuse them.
    • However, it is possible to destroy frames by parenting them to a user waypoint frame and triggering a loading screen.[1]

Examples

  • Shows a texture which is also parented to UIParent so it will be hidden when toggled with Alt-Z

inv_mushroom_11

local f = CreateFrame("Frame", nil, UIParent)
f:SetPoint("CENTER")
f:SetSize(64, 64)

f.tex = f:CreateTexture()
f.tex:SetAllPoints(f)
f.tex:SetTexture("interface/icons/inv_mushroom_11")

Click me

local btn = CreateFrame("Button", nil, UIParent, "UIPanelButtonTemplate")
btn:SetPoint("CENTER")
btn:SetSize(100, 40)
btn:SetText("Click me")
btn:SetScript("OnClick", function(self, button)
	print("You clicked me with "..button)
end)
local m = CreateFrame("PlayerModel")
m:SetPoint("CENTER")
m:SetSize(200, 200)
m:SetDisplayInfo(21723) -- murloccostume.m2
  • Registers for events being fired, like chat messages and when you start/stop moving.
local function OnEvent(self, event, ...)
	print(event, ...)
end

local f = CreateFrame("Frame")
f:RegisterEvent("CHAT_MSG_CHANNEL")
f:RegisterEvent("PLAYER_STARTED_MOVING")
f:RegisterEvent("PLAYER_STOPPED_MOVING")
f:SetScript("OnEvent", OnEvent)

Patch changes

See also

References

Advertisement