魔獸世界插件實戰(zhàn)筆記從入門到放棄的心理歷程 第二節(jié)XML框架的建立
2022-04-14 23:36 作者:在艾澤拉斯路口等風吹 | 我要投稿

魔獸世界插件實戰(zhàn)筆記從入門到放棄的心理歷程 第三節(jié) XML框體的建立

經過前面兩節(jié)的學習,知道了怎么建立一個魔獸世界的插件,以及用lua文件來建立一個窗體,但是一般在看別人的插件的時候,都會看到一個XML文件,了解HTMl的都知道,它一般指可擴展標記語言,而且基本都是成對出現。
在魔獸世界的插件定義中,toc文件是插件定義文件,xml文件來實現窗體的UI,lua文件實現功能。
建立好toc文件以后,在魔獸世界的客戶端就能看到第三節(jié) XML框體的建立 ?已經能正確加載,用一個print打印函數來確認一下。
/script ? print("當前游戲版本號:",(select(4,GetBuildInfo())));
先介紹一個窗體檢測宏命令,怎么用,看視頻:
/fstack ? 檢測窗體
這一節(jié)有一點要注意,好像到9.0版本以后,在xml中Backdrop的屬性發(fā)生了變化,背景屬性設置不起作用,必須放到Scripts中調用嗎?在Vscode中看著沒有顏色變化不舒服,我把定義放到lua文件去,前面說過,功能的實現,其實在哪里看你愿意,都是可以的,你覺得舒服就行,沒有必要強求。
toc文件代碼:
# 魔獸版本號
## Interface: 90200
# 標題
# Title: 第三節(jié)XML框架
## Title: |cffffe00a[|r|cffff7d0a摸魚兒|r|cffffe00a]|r |cff69ccf0第三節(jié)XML框架的建立|r
# 說明
# Notes: 介紹魔獸插件框架的建立。
## Notes: |cff69ccf0介紹魔獸插件XML框架的建立。|r
# 作者
## Author: 摸魚兒
# 插件的版本號,和魔獸版本號沒有關系
## Version: 1.0.0
# 框體布局文件
UiFarme.xml
# 腳本文件,一般用來放功能實現函數
LuaFamrme.lua
xml文件代碼:
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Frame name="FrameBackdrop" parent="UIParent" ?inherits="BackdropTemplate" ?enableMouse="true">
? ? ? ? ? ?<Size>
? ? ? ? ? ?<!-- 尺寸設置 -->
? ? ? ? ? ?<AbsDimension x="200" y="200" />
? ? ? ? ? ?</Size>
? ? ? ? ? ?<Anchors>
? ? ? ? ? ?<Anchor point="CENTER">
? ? ? ? ? ?<!-- 偏移 -->
? ? ? ? ? ?<Offset x="-250" y="0" />
? ? ? ? ? ?</Anchor>
? ? ? ? ? ?</Anchors>
? ? ? ? ? ?<Layers>
? ? ? ? ? ?<Layer level="BACKGROUND"> ? ? ? ? ? ?
? ? ? ? ? ?<!-- <Backdrop bgFile="Interface/Tooltips/UI-Tooltip-Background" edgeFile="Interface/Tooltips/UI-Tooltip-Border" tile="true">
? ? ? ? ? ?<BackgroundInsets>
? ? ? ? ? ?<AbsInset left="4" right="4" top="4" bottom="4" />
? ? ? ? ? ?</BackgroundInsets>
? ? ? ? ? ?<TileSize>
? ? ? ? ? ?<AbsValue val="32" />
? ? ? ? ? ?</TileSize>
? ? ? ? ? ?<EdgeSize>
? ? ? ? ? ?<AbsValue val="32" />
? ? ? ? ? ?</EdgeSize>
? ? ? ? ? ?</Backdrop> -->
? ? ? ? ? ?<!-- 材質設置 -->
? ? ? ? ? ?<Texture name="$parentHorizontal" >
? ? ? ? ? ?<Size x="180" y="180" />
? ? ? ? ? ?<!-- 錨點位置 -->
? ? ? ? ? ?<Anchors>
? ? ? ? ? ?<Anchor point="CENTER" relativePoint="CENTER" />
? ? ? ? ? ?</Anchors>
? ? ? ? ? ?<!-- <Color r="0" g="0" b="1" a="0.5" /> -->
? ? ? ? ? ?</Texture>
? ? ? ? ? ?</Layer>
? ? ? ? ? ?</Layers>
<Scripts>
<OnLoad>
? ?<!-- local backdropInfo = {
? ? ? ?bgFile = "Interface/Tooltips/UI-Tooltip-Background",
? ? ? ?edgeFile = "Interface/Tooltips/UI-Tooltip-Border",
? ? ? ?tile = true,
? ? ? ?tileEdge = true,
? ? ? ?edgeSize = 16,
? ? ? ?insets = { left = 4, right = 4, top = 4, bottom = 4 },
? ?}
? ?self:SetBackdrop(backdropInfo);
? ?self:SetBackdropColor(0, 0, 1, .5) -->
</OnLoad>
</Scripts>
</Frame>
</Ui>
lua文件代碼:
print("當前游戲版本號:",(select(4,GetBuildInfo())));
local backdropInfo = {
? ?bgFile = "Interface/Tooltips/UI-Tooltip-Background",
? ?edgeFile = "Interface/Tooltips/UI-Tooltip-Border",
? ?tile = true,
? ?tileEdge = true,
? ?edgeSize = 16,
? ?insets = { left = 4, right = 4, top = 4, bottom = 4 },
}
-- name="FrameBackdrop"
local f = ?FrameBackdrop
f:SetBackdrop(backdropInfo);
f:SetBackdropColor(0, 0, 1, .3)
標簽: