打印

[教程]XART教程 原作者 netcookies <转>

[教程]XART教程 原作者 netcookies <转>

引用:
原作者来自MOP,尊重原作者.
废话不多说,直接进入正题



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 编辑 ]

TOP

XART

好喜欢这个啊 不兼容怎么办呢 我用的最新的ACE2库

TOP