【魔兽世界插件】魔兽世界插件实战笔记从入门到放弃的心理历程 第六节 窗体对象的锚定
锚很容易理解,就是向船落锚定位一样,把窗体固定到什么位置然后不动了,一个是这样,那两个窗体呢,他们互相是什么关系,他们和父窗体,和兄弟窗体之间又怎么定位呢?这就需要在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站,有兴趣的自己去看,高手略过,就是初步入门。
【魔兽世界插件】魔兽世界插件实战笔记从入门到放弃的心理历程 第六节 窗体对象的锚定相关推荐
- 梳理 React 知识笔记 从入门到放弃 !框架必知的知识点
React 一.React - 简介 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框 架,都不满意,就决定自己写一套,用来架设Insta ...
- python爬虫从入门到实战笔记——第四章Scrapy框架
推荐阅读: python爬虫从入门到实战笔记--第一章爬虫原理和数据爬取 python爬虫从入门到实战笔记--第二章非结构化数据和结构化数据的提取 python爬虫从入门到实战笔记--第三章动态HTM ...
- 基于jquery的插件turn.js学习笔记
基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...
- 知乎爆赞!4504页《微信小程序零基础入门开发文档》+《小程序实战笔记》,你学废了吗?
前言 微信小程序作为近几年"微服务"的杰出代表,应用十分广泛.小程序是一种新的开放能力,开发者可以快速地开发一个小程序.小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验 ...
- Android插件化:从入门到放弃
喜欢 | 作者 包建强 发布于 2016年7月14日. 估计阅读时间: 1 分钟 | 道AI风控.Serverless架构.EB级存储引擎,尽在ArchSummit!讨论 分享到:微博微信Facebo ...
- 零基础入门推荐系统 - 新闻推荐实战-笔记四
零基础入门推荐系统 - 新闻推荐实战-笔记四-特征工程 什么是特征工程 本次特征工程内容 已有特征 特征构造 负采样 什么是特征工程 工业界名言:数据和特征决定了机器学习的上限,而模型和算法只是逼近这 ...
- 58同城Android端-最小插件化框架实战和原理分析
目录 背景 插件化需要了解的知识 2.1 类加载过程和类加载器 2.2 ClassLoader 的 findClass.findLibrary.findResource 2.3 DexClassLoa ...
- 【板栗糖GIS】——如何使用插件将微信读书笔记同步到notion
[板栗糖GIS]--如何使用插件将微信读书笔记同步到notion 注:本文创意以及插件开发皆是B站的[三此君] 视频链接如下: 全网唯一支持图文导出的微信读书插件,升级啦!主打一个惊艳._哔哩哔哩_b ...
- Android 插件化原理 完胜360插件框架 技术实战
性能优化 Android 性能优化 (一)APK高效瘦身 http://blog.csdn.net/whb20081815/article/details/70140063 Android 性能优化 ...
- 微信小程序入门与实战笔记
微信小程序 目录 微信小程序 1微信小程序介绍 1.1什么是微信小程序 1.2小程序特点 1.3对开发者的影响 1.4分辨率与rpx 1.4.1英寸 1.4.1分辨率(pt): 1.4.2分辨率(px ...
最新文章
- Google 顶级论文:机器学习系统,隐藏多少技术债?
- matlab fminimax 多变量,Matlab应用实例(8)—fminimax
- RHCE 学习笔记(7) 进程管理
- shell编程基础-简述
- IDEA远程调试服务器代码
- Dapr + .NET 实战(九)本地调试
- 12 个轻量级的 JavaScript 库
- Kafka从上手到实践 - 初步认知:MQ系统 | 凌云时刻
- UVC协议CT_ZOOM_RELATIVE_CONTROL选择子放大缩小停止的问题
- APS与ERP及MES的关系和接口
- 26岁程序员猝死,再次提醒:有几个前兆其实很显眼
- Unity3D打印拓展XMDebug
- L130被围绕的区域
- php 极光短信发送 api
- js中new操作符具体做了什么
- eclipse简单导入xtend项目
- win10自动修复系统
- 并查集专题(亲戚,格子游戏,银河英雄传说)
- android控制板
- 关于修改VS资源的ID:例如MENU
热门文章
- IOS11.03越狱
- [思考] 闲时随笔一篇
- python程序设计从基础到开发课后题答案夏敏捷_Python程序设计——从基础到开发...
- 维盟无线ap服务器地址,让WiFi飞起来!维盟室外无线AP桥接与中继配置方案
- 为何提示网站安全证书有问题?不同原因下,如何解决?
- linux系统怎么使用优盘,教你如何使用u盘安装Linux系统
- 当当网,京东商城,一号店,苏宁易购百万数据抓取爬虫程序
- 等了6年,周杰伦最新专辑来了!5天破2600万!
- MIB 浏览器的使用指导
- 【实战篇】微信公众号网页授权登录实现起来如此简单