废话不多说,直接进入正题
function XArt:OnEnable()
self:CreateArtFrame()
self:AlignTexture()
--self:MoveMinimap() 这两条注释掉,分别是移动小地图位置和移动默认的动作条
--self:MoveActionbars() 米有用,地球人都不用这个功能
end
下面这段是关于添加素材问题的,请注意看,看不懂就多看几遍
unction XArt:CreateArtFrame()
self.frame = CreateFrame("Frame", "XArtFrame", UIParent) 创建一个FRAME
self.frame:SetFrameStrata("BACKGROUND") 设置FRAME的层次,默认在最下层
self.frame:EnableMouse(false) 允许鼠标反应,背景图要反应干什么?FASLE不用改(接下面半句:不建议开启很乱)
self.frame:SetMovable(false) 允许移动?FALSE,理由同上,(注意:这两项如果开启的话就可以用MOVEANYTHING移动了)
self.frame:SetWidth(2048) 设置这块FRAME的宽,随便你设置多少,只要等等能放得下你的素材就行,注意设置成2的N次方
self.frame:SetHeight(256) 设置高
self.frame:ClearAllPoints() FRAME设置锚点时,必写的函数
self.frame:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT", 0, 0) 设置锚点,以及坐标BOTTOMLEFT为左下的意思,UIARENT是它的参照物,第1个BOTTOMLEFT的意思就是相对UIPARENT来说此FRAME位于他的左下,第二个意思简单的说就是相对第一个BOTTOMLEFT设置的那个点的位置,最后一个是偏移坐标,以当前点为原点,负数表示左和下,正的表示右和上
for i=1,4 do 这里的4为你总共要放几块素材在这个FRAME里
self["art"..i] = self.frame:CreateTexture("$parentArt"..i,"BACKGROUND")
self["art"..i]:SetWidth(512) 每块素材的宽
self["art"..i]:SetHeight(256) 高
self["art"..i]:SetTexture("Interface\\Addons\\XArt\\Textures\\NE"..i)素材名字,我的素材是NE1到NE4所有前面写NE,i为变量
self["art"..i]:ClearAllPoints()
if i == 1 then
self["art"..i]:SetPoint("BOTTOMLEFT", self.frame, "BOTTOMLEFT", 0, 0) 参考下面的FUBAR例子,自己理解下
else
self["art"..i]:SetPoint("BOTTOMLEFT", self["art"..i-1], "BOTTOMRIGHT", 0, 0)
end
self["art"..i]:Show()
end
self.frame:Show()
end
这下面是素材的缩放大小
function XArt:AlignTexture()
self.frame:SetScale((UIParent:GetWidth()/1840) / UIParent:GetEffectiveScale()) 这的1840为我的四块素材可见部分加起来的宽 总共是四块,前三块都是512 最后一块只用了靠左边的304宽的空间,所以我需要显示的总大小为512+512+512+304=1804
end
下面发上我为FUBAR添加素材的例子,大家参考下,还有不懂的就此跟贴
function FuArt:CreateArtFrame()
self.frame = CreateFrame("Frame", "FuArtFrame", UIParent)
self.frame:SetFrameStrata("BACKGROUND")
self.frame:EnableMouse(false)
self.frame:SetMovable(false)
self.frame:SetWidth(2048)
self.frame:SetHeight(256)
self.frame:ClearAllPoints()
self.frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", 0, 0)
for i=1,3 do
self["art"..i] = self.frame:CreateTexture("$parentArt"..i,"BACKGROUND")
self["art"..i]:SetWidth(512)
self["art"..i]:SetHeight(128)
self["art"..i]:SetTexture("Interface\\Addons\\XArt\\Textures\\netop"..i)
self["art"..i]:ClearAllPoints()
if i == 1 then
self["art"..i]:SetPoint("TOPLEFT", self.frame, "TOPLEFT", 0, 0)
else
self["art"..i]:SetPoint("TOPLEFT", self["art"..i-1], "TOPRIGHT", 0, 0)
end
self["art"..i]:Show()
end
self.frame:Show()
end
function FuArt:AlignTexture()
self.frame:SetScale((UIParent:GetWidth()/1536) / UIParent:GetEffectiveScale())
end
XArt.rar
成品图
[
本帖最后由 邪恶的kristina 于 2007-3-16 13:34 编辑 ]