锚很容易理解,就是向船落锚定位一样,把窗体固定到什么位置然后不动了,一个是这样,那两个窗体呢,他们互相是什么关系,他们和父窗体,和兄弟窗体之间又怎么定位呢?这就需要在xml中添加他们的锚定关系了。

左上 (TOPLEFT)
上 (TOP)
右上 (TOPRIGHT)
左 (LEFT)
中 (CENTER)
右 (RIGHT)
左下 (BOTTOMLEFT)
下 (BOTTOM)
右下 (BOTTOMRIGHT) 

这是几个主要的关键位置,主要就是靠他们互相锚定,当他们锚定后,就会成为一个整体,月亮走我也走。

<Anchor point="TOPLEFT" relativePoint="BOTTOMRIGHT" relativeTo="FrameBackdrop" > 

举一个具体的例子,上面这句,解释一下就是我(point)的左上角,锚定了你(relativePoint

)的右下角,我们都认relativeTo属性为老大,他说东我们就一起到到东,他说西,我们就到西。

toc文件代码:

# 魔兽版本号
## Interface: 90200
# 标题
## Title: |cffffe00a[|r|cffff7d0a摸鱼儿|r|cffffe00a]|r |cff69ccf0第六节窗体对象的锚定|r
# 说明
## Notes: |cff69ccf0魔兽世界插件-窗体对象的锚定|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"  movable="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></Texture><FontString name="FrameFontString" font="Fonts\ARKai_T.TTF" text="魔兽世界坐标" justifyH="LEFT" justifyV="TOP"><Color r="1" g="1" b="1" a="0.2"/><FontHeight val="23"/><Anchors><Anchor point="CENTER" relativeTo="$parent" x="0" y="5" /></Anchors><Shadow><Offset x="10" y="1" /><Color r="1" g="1" b="1"/></Shadow></FontString></Layer></Layers><Scripts><OnLoad><!-- 表示用鼠标的左键点击 -->self:RegisterForDrag("LeftButton")<!-- 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><OnDragStart>self:StartMoving()</OnDragStart><OnDragStop>self:StopMovingOrSizing()</OnDragStop></Scripts></Frame><!-- 左上 (TOPLEFT)
上 (TOP)
右上 (TOPRIGHT)
左 (LEFT)
中 (CENTER)
右 (RIGHT)
左下 (BOTTOMLEFT)
下 (BOTTOM)
右下 (BOTTOMRIGHT) --><Frame name="MyFrame1" parent="UIParent"  inherits="BackdropTemplate"><Size x="64" y="64" /><Anchors><Anchor point="TOPLEFT" relativePoint="BOTTOMRIGHT" relativeTo="FrameBackdrop" ><!-- <Anchor point="CENTER" relativePoint="CNETER" relativeTo="UIParent"> --><!-- <Offset x="0" y="0" /> --></Anchor></Anchors><Layers><Layer level="BACKGROUND"><!-- 材质设置 --><Texture name="MyFrameTexture1" ><Size x="64" y="64" /><!-- 锚点位置 --><Anchors><Anchor point="CENTER" relativePoint="CENTER" /></Anchors></Texture></Layer></Layers>
</Frame><Frame name="MyFrame2" parent="UIParent"  inherits="BackdropTemplate"><Size x="64" y="64" /><Anchors><Anchor point="BOTTOMRIGHT" relativePoint="TOPLEFT" relativeTo="FrameBackdrop" ><!-- <Anchor point="CENTER" relativePoint="CNETER" relativeTo="UIParent"><Offset x="64" y="0" /> --></Anchor></Anchors><Layers><Layer level="BACKGROUND"><!-- 材质设置 --><Texture name="MyFrameTexture2" ><Size x="64" y="64" /><!-- 锚点位置 --><Anchors><Anchor point="CENTER" relativePoint="CENTER" /></Anchors></Texture></Layer></Layers>
</Frame><Frame name="MyFrame3" parent="UIParent"  inherits="BackdropTemplate"><Size x="64" y="64" /><Anchors><Anchor point="BOTTOMLEFT" relativePoint="TOPRIGHT" relativeTo="FrameBackdrop" ><!-- <Anchor point="CENTER" relativePoint="CNETER" relativeTo="UIParent"><Offset x="0" y="64" /> --></Anchor></Anchors><Layers><Layer level="BACKGROUND"><!-- 材质设置 --><Texture name="MyFrameTexture3" ><Size x="64" y="64" /><!-- 锚点位置 --><Anchors><Anchor point="CENTER" relativePoint="CENTER" /></Anchors></Texture></Layer></Layers>
</Frame><Frame name="MyFrame4" parent="UIParent"  inherits="BackdropTemplate"><Size x="64" y="64" /><Anchors><Anchor point="TOPRIGHT" relativePoint="BOTTOMLEFT" relativeTo="FrameBackdrop" ><!-- <Anchor point="CENTER" relativePoint="CNETER" relativeTo="UIParent"><Offset x="64" y="64" /> --></Anchor></Anchors><Layers><Layer level="BACKGROUND"><!-- 材质设置 --><Texture name="MyFrameTexture4" ><Size x="64" y="64" /><!-- 锚点位置 --><Anchors><Anchor point="CENTER" relativePoint="CENTER" /></Anchors></Texture></Layer></Layers>
</Frame></Ui> 

lua文件代码:

local myFrame
local myFontString
local myNameprint("当前游戏版本号:",(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"
myFrame =  FrameBackdrop
myFrame:SetBackdrop(backdropInfo);
myFrame:SetBackdropColor(0, 0, 1, .5)myFontString = FrameFontString
-- myFontString:SetText("魔兽世界坐标水印")myName = UnitName("player")
myFontString:SetText(myName .."专用")local myFrame_1 =  MyFrame1
myFrame_1:SetBackdrop(backdropInfo);
myFrame_1:SetBackdropColor(0, 0, 1, .5)local myFrame_2 =  MyFrame2
myFrame_2:SetBackdrop(backdropInfo);
myFrame_2:SetBackdropColor(0, 0, 1, .5)local myFrame_3 =  MyFrame3
myFrame_3:SetBackdrop(backdropInfo);
myFrame_3:SetBackdropColor(0, 0, 1, .5)local myFrame_4 =  MyFrame4
myFrame_4:SetBackdrop(backdropInfo);
myFrame_4:SetBackdropColor(0, 0, 1, .5) 

这一节还学习了一个暴雪提供的API函数,获取人物的名字:

local   myName = UnitName("player")

呵呵,已经慢慢的接近实际功能了,我很期待啊。

视频

魔兽世界插件实战笔记从入门到放弃的心理历程 第六节 窗体对象的锚定

我放在了B站,有兴趣的自己去看,高手略过,就是初步入门。

【魔兽世界插件】魔兽世界插件实战笔记从入门到放弃的心理历程 第六节 窗体对象的锚定相关推荐

  1. 梳理 React 知识笔记 从入门到放弃 !框架必知的知识点

    React 一.React - 简介 ​ React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框 架,都不满意,就决定自己写一套,用来架设Insta ...

  2. python爬虫从入门到实战笔记——第四章Scrapy框架

    推荐阅读: python爬虫从入门到实战笔记--第一章爬虫原理和数据爬取 python爬虫从入门到实战笔记--第二章非结构化数据和结构化数据的提取 python爬虫从入门到实战笔记--第三章动态HTM ...

  3. 基于jquery的插件turn.js学习笔记

    基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...

  4. 知乎爆赞!4504页《微信小程序零基础入门开发文档》+《小程序实战笔记》,你学废了吗?

    前言 微信小程序作为近几年"微服务"的杰出代表,应用十分广泛.小程序是一种新的开放能力,开发者可以快速地开发一个小程序.小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验 ...

  5. Android插件化:从入门到放弃

    喜欢 | 作者 包建强 发布于 2016年7月14日. 估计阅读时间: 1 分钟 | 道AI风控.Serverless架构.EB级存储引擎,尽在ArchSummit!讨论 分享到:微博微信Facebo ...

  6. 零基础入门推荐系统 - 新闻推荐实战-笔记四

    零基础入门推荐系统 - 新闻推荐实战-笔记四-特征工程 什么是特征工程 本次特征工程内容 已有特征 特征构造 负采样 什么是特征工程 工业界名言:数据和特征决定了机器学习的上限,而模型和算法只是逼近这 ...

  7. 58同城Android端-最小插件化框架实战和原理分析

    目录 背景 插件化需要了解的知识 2.1 类加载过程和类加载器 2.2 ClassLoader 的 findClass.findLibrary.findResource 2.3 DexClassLoa ...

  8. 【板栗糖GIS】——如何使用插件将微信读书笔记同步到notion

    [板栗糖GIS]--如何使用插件将微信读书笔记同步到notion 注:本文创意以及插件开发皆是B站的[三此君] 视频链接如下: 全网唯一支持图文导出的微信读书插件,升级啦!主打一个惊艳._哔哩哔哩_b ...

  9. Android 插件化原理 完胜360插件框架 技术实战

    性能优化 Android 性能优化 (一)APK高效瘦身 http://blog.csdn.net/whb20081815/article/details/70140063 Android 性能优化 ...

  10. 微信小程序入门与实战笔记

    微信小程序 目录 微信小程序 1微信小程序介绍 1.1什么是微信小程序 1.2小程序特点 1.3对开发者的影响 1.4分辨率与rpx 1.4.1英寸 1.4.1分辨率(pt): 1.4.2分辨率(px ...

最新文章

  1. Google 顶级论文:机器学习系统,隐藏多少技术债?
  2. matlab fminimax 多变量,Matlab应用实例(8)—fminimax
  3. RHCE 学习笔记(7) 进程管理
  4. shell编程基础-简述
  5. IDEA远程调试服务器代码
  6. Dapr + .NET 实战(九)本地调试
  7. 12 个轻量级的 JavaScript 库
  8. Kafka从上手到实践 - 初步认知:MQ系统 | 凌云时刻
  9. UVC协议CT_ZOOM_RELATIVE_CONTROL选择子放大缩小停止的问题
  10. APS与ERP及MES的关系和接口
  11. 26岁程序员猝死,再次提醒:有几个前兆其实很显眼
  12. Unity3D打印拓展XMDebug
  13. L130被围绕的区域
  14. php 极光短信发送 api
  15. js中new操作符具体做了什么
  16. eclipse简单导入xtend项目
  17. win10自动修复系统
  18. 并查集专题(亲戚,格子游戏,银河英雄传说)
  19. android控制板
  20. 关于修改VS资源的ID:例如MENU

热门文章

  1. IOS11.03越狱
  2. [思考] 闲时随笔一篇
  3. python程序设计从基础到开发课后题答案夏敏捷_Python程序设计——从基础到开发...
  4. 维盟无线ap服务器地址,让WiFi飞起来!维盟室外无线AP桥接与中继配置方案
  5. 为何提示网站安全证书有问题?不同原因下,如何解决?
  6. linux系统怎么使用优盘,教你如何使用u盘安装Linux系统
  7. 当当网,京东商城,一号店,苏宁易购百万数据抓取爬虫程序
  8. 等了6年,周杰伦最新专辑来了!5天破2600万!
  9. MIB 浏览器的使用指导
  10. 【实战篇】微信公众号网页授权登录实现起来如此简单