WOW原始UI代码分析【ActionButton】

开场白
1、这是我分析WOW原始UI代码后,对一些比较关键的部分,记录下来的
2、文章里面如果有什么纰漏,希望大家毫不客气的提出来,我一定查究!

3、关于基础问题可以参考
   WOW UI
 《UI制作入门》http://www.pcgames.com.cn/netgames/zhuanti/wow/expert/Ui.htm
 《WOW UI定制入门》http://202.113.13.169/site/mybbs/read.php?tid=33
 《WOW插件制作指南》http://www.cnblogs.com/bluefee/archive/2005/04/14/137217.html
 《ADDONS编写普及》http://wowbbs.game.mop.com/viewthread.php?tid=216755&extra=page%3D1
 《动手写个属于自己的UI》http://wowbbs.game.mop.com/viewthread.php?tid=149814&fpage=1&highlight=
   XML
 《XML初学进阶》http://www.chinausd.com/code/code.asp?id=173/5058
 《XMLSpy 2005 Enterprise Edition》http://www.altova.com/download_spy_enterprise.html
   Lua
 《Lua5.0参考手册中文版》http://www.cnblogs.com/bluefee/archive/2005/04/15/138576.html
 《Lua 程序设计初步》http://bbs.battlecn.net/read.php?tid=541871&fpage=1
 《通过例子学习Lua》http://www.wowtc.com/bbs/read.php?tid=4999&fpage=2
 《Programming in LUA中文版》http://www.wowtc.com/bbs/read.php?tid=4998&fpage=2
 《LuaEdit v2.5》http://luaforge.net/projects/luaedit/
4、关于如何提取MPQ文件,如何查看BLP图像,可以参考
 《WoW Working Link》http://www.fukt.bth.se/%7Ek/wow/stuff/howto-extract-interface-files.txt
 《Win MPQ》http://wow.duowan.com/2005-05-16/007R/26857843.html
 《Win BLP Viewer》http://gamedown.yesky.com/game/108/108805.html
5、关于查询资料可以参考
 《WoW Wiki》http://www.wowwiki.com/Interface_Customization/
 《WOW APIs》http://www.cnblogs.com/bluefee/archive/2005/04/12/136270.html
 《UI&Macro Forum》http://forums.worldofwarcraft.com/board.aspx?fn=wow-interface-customization
6、如果该问题是可以类推,或是从上下文能马上理解,或是从字面就知道含义的我就不罗嗦了
7、对于相同的问题我一般只分析一次,或是简要的提示一下,具体内容可以参考我以前的分析
8、如果你对自己查找资料的能力感到抱歉,可以E-mail向我询问,我会努力帮助你
9、联系方式E-mail: [email protected]    Blog: blog.csdn.net/tcxxs     QQ: 35548917
10、做人要厚道,转载请注明出处!


--------------------------------------------------


正式开始
1、版本:1.7.1 (4659)
2、这次我写的是ActionbuttonTemplate.xml,ActionBarFrame.xml和ActionButton.lua
   他们是动作按钮的基础UI,也是大家比较关心的一部分,在Interface/FrameXML里面

3、这次分析用到的名词解释:
 【模板】学过C++语言的人都知道虚函数,实际上是一个道理,只是作为子代继承的规范,不可创建实例
 【栅格】一个用来放置图标的格子,默认为无图标时隐藏,当然你也可以显示它
 【额外栅格】包括了战士姿态,德鲁依外形,盗贼潜行的栅格
 【栅格ID】每个栅格都有对应的ID,是该栅格的唯一标示
 【图标】每个技能和物品,包括交易技能,食物,宏等都有一个可以拖动的图标
 【动作键】当把图标放置到栅格上时,这个整体就叫动作键
 【额外动作键】当把图标放置到额外栅格上时,这个整体就叫额外动作键
 【动作条】一般12个栅格组成一排或者一列,称这个为动作条
 【额外动作条】由12个额外栅格组成一排或者一列,称这个为额外动作条
 【动作条ID】在默认动作条中每个动作条都有页码,是这个动作条的唯一标示
  这里解释一下各个动作条的位置,主动作条包括1,2页
  然后右边1,右边2,右下,左下依次为3到6页,栅格ID排列如图
  61-72(左下)49-60(右下)37    25
        (右边2) I     I (右边1)
  1-12(主AB)13-24(2页)  48    36
  这里注意一个问题,为什么有的UI可以实现96个(FB,DUF等)或者更多呢
  这是因为额外栅格的存在,这些UI把空闲的额外栅格加以利用罢了
  调用这些额外栅格的动作键应该用其对应的函数
 【闪动】当执行自动攻击或者自动射击技能时,改动作键就处于闪动状态
 【CD】CoolDown的简写
 【信息提示】即GameTooltip,当鼠标指向某个东西时显示的提示信息
 【光环】包括buff,debuff,物品附加属性等
 【arg1..N】arg为事件触发是传入的参数,可以为0到多个
 

--------------------------------------------

源代码及注释

-----------------------ActionButtonTemplate.xml



 
 【动作键】【模板】
  
   
  

  
   
    
    背景层放置【图标】
   

   
   层的从下到上为:BackGround,ArtWork,OverLay
    

   
    
    该【动作键】名字,例如:宏的名字
     
      
     

     
      
       
        
       

      

     

    

   

  

  
   
   直接应用【CD】模板,没有测试过,还望高人赐教,或者等我以后试
  

  
  【图标】边框纹理,如果该【栅格】已放置【图标】,则显示这个纹理
  若没有放置,则显示UI-Quickslot,它比UI-Quickslot2稍微小点
   
    
   

   
    
     
      
      立体效果,而且UI-Quickslot的显示位置也依赖UI-Quickslot2
      但是【图标】的实际放置位置却并不依赖这个位置,由BackGround层决定
     

    

   

  

  
  点击【动作键】时的纹理
  
  鼠标经过【栅格】时的纹理
  
  等待施法时【栅格】的纹理,例如:你点击加血法术到选择目标那段时间显示
 


------------------------ActionBarFrame.xml



 

你可能感兴趣的:(128MB键盘,[WOW,UI],ui,代码分析,button,function,file,action)