<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://www.waylee.net/index.php?action=history&amp;feed=atom&amp;title=Lua%E6%8E%A5%E5%8F%A3%2F%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%95%8C%E9%9D%A2%E5%B8%83%E5%B1%80</id>
	<title>Lua接口/客户端界面布局 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://www.waylee.net/index.php?action=history&amp;feed=atom&amp;title=Lua%E6%8E%A5%E5%8F%A3%2F%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%95%8C%E9%9D%A2%E5%B8%83%E5%B1%80"/>
	<link rel="alternate" type="text/html" href="https://www.waylee.net/index.php?title=Lua%E6%8E%A5%E5%8F%A3/%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%95%8C%E9%9D%A2%E5%B8%83%E5%B1%80&amp;action=history"/>
	<updated>2026-10-24T10:34:52Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://www.waylee.net/index.php?title=Lua%E6%8E%A5%E5%8F%A3/%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%95%8C%E9%9D%A2%E5%B8%83%E5%B1%80&amp;diff=14078&amp;oldid=prev</id>
		<title>Waylee：​新建客户端 Lua 接口页：全局函数、对象方法、窗口操作与客户端事件</title>
		<link rel="alternate" type="text/html" href="https://www.waylee.net/index.php?title=Lua%E6%8E%A5%E5%8F%A3/%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%95%8C%E9%9D%A2%E5%B8%83%E5%B1%80&amp;diff=14078&amp;oldid=prev"/>
		<updated>2026-10-24T06:36:02Z</updated>

		<summary type="html">&lt;p&gt;新建客户端 Lua 接口页：全局函数、对象方法、窗口操作与客户端事件&lt;/p&gt;
&lt;a href=&quot;https://www.waylee.net/index.php?title=Lua%E6%8E%A5%E5%8F%A3/%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%95%8C%E9%9D%A2%E5%B8%83%E5%B1%80&amp;amp;diff=14078&amp;amp;oldid=13270&quot;&gt;显示更改&lt;/a&gt;</summary>
		<author><name>Waylee</name></author>
	</entry>
	<entry>
		<id>https://www.waylee.net/index.php?title=Lua%E6%8E%A5%E5%8F%A3/%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%95%8C%E9%9D%A2%E5%B8%83%E5%B1%80&amp;diff=13270&amp;oldid=prev</id>
		<title>Waylee：​新建客户端 Lua 接口页：全局函数、对象方法、窗口操作与客户端事件</title>
		<link rel="alternate" type="text/html" href="https://www.waylee.net/index.php?title=Lua%E6%8E%A5%E5%8F%A3/%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%95%8C%E9%9D%A2%E5%B8%83%E5%B1%80&amp;diff=13270&amp;oldid=prev"/>
		<updated>2026-10-24T06:26:11Z</updated>

		<summary type="html">&lt;p&gt;新建客户端 Lua 接口页：全局函数、对象方法、窗口操作与客户端事件&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;lua-reference&amp;quot;&amp;gt;&lt;br /&gt;
[[首页|首页]] · [[Lua接口/客户端函数索引|客户端接口]] · [[Lua接口/客户端界面索引|客户端界面]] · [[Lua接口/客户端界面布局|界面布局]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;lua-lead lua-accent-amber&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div role=&amp;quot;heading&amp;quot; aria-level=&amp;quot;2&amp;quot; class=&amp;quot;lua-h1&amp;quot;&amp;gt;客户端界面布局 XML&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lua-sub&amp;quot;&amp;gt;351 个 &amp;lt;code&amp;gt;.layout.xml&amp;lt;/code&amp;gt; · 13538 个控件 · 142 种控件类型 · 5991 条事件绑定&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 一个界面是两个文件 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; class=&amp;quot;lua-w38&amp;quot; | 文件&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;lt;目录&amp;amp;gt;/&amp;amp;lt;脚本&amp;amp;gt;.lua&amp;lt;/code&amp;gt;&lt;br /&gt;
| 界面逻辑：注册事件、改文字、调接口。所有判断与数据都写在这里。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;lt;目录&amp;amp;gt;/&amp;amp;lt;布局&amp;amp;gt;.layout.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
| 控件层级与外观：摆在哪、多大、什么样式、点了调哪个函数。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
哪个功能对应哪两个文件，见[[Lua接口/客户端界面索引|客户端界面索引]]；本页只讲 &amp;lt;code&amp;gt;.layout.xml&amp;lt;/code&amp;gt; 里能写什么、它和 Lua 怎么接。&lt;br /&gt;
&lt;br /&gt;
== 加载顺序 ==&lt;br /&gt;
界面第一次显示时按下面顺序走一遍（实现见客户端 &amp;lt;code&amp;gt;CEGUISystem/UIWindowMng.cpp&amp;lt;/code&amp;gt;）：&lt;br /&gt;
&lt;br /&gt;
# 创建界面对象，把 &amp;lt;code&amp;gt;this&amp;lt;/code&amp;gt; 注入脚本环境（&amp;lt;code&amp;gt;this&amp;lt;/code&amp;gt; 可调[[Lua接口/客户端窗口操作|窗口操作]]里的方法）。&lt;br /&gt;
# 执行 &amp;lt;code&amp;gt;&amp;amp;lt;界面名&amp;amp;gt;_PreLoad()&amp;lt;/code&amp;gt;：此时控件还不存在，只能做准备（取配置、置标记）。&lt;br /&gt;
# 读取并解析 &amp;lt;code&amp;gt;.layout.xml&amp;lt;/code&amp;gt;，挂到屏幕上并先隐藏。&lt;br /&gt;
# 递归注册控件：布局里每个 &amp;lt;code&amp;gt;&amp;amp;lt;Window Name=&amp;quot;X&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt; 都成为脚本里的一个变量 &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;。&lt;br /&gt;
# 执行 &amp;lt;code&amp;gt;&amp;amp;lt;界面名&amp;amp;gt;_OnLoad()&amp;lt;/code&amp;gt;：这时才能安全地改控件。&lt;br /&gt;
&lt;br /&gt;
所以脚本里可以直接写 &amp;lt;code&amp;gt;DressPaint_Text:SetText(&amp;quot;&amp;quot;)&amp;lt;/code&amp;gt; —— &amp;lt;code&amp;gt;DressPaint_Text&amp;lt;/code&amp;gt; 不是脚本里声明的局部变量，而是加载布局时按控件名注册进来的。&amp;#039;&amp;#039;&amp;#039;在 &amp;lt;code&amp;gt;_PreLoad&amp;lt;/code&amp;gt; 里访问控件会拿到 &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
&lt;br /&gt;
== 三条接缝 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; class=&amp;quot;lua-w46&amp;quot; | 布局里写的&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 脚本里对应的&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;lt;Window Name=&amp;quot;DressPaint_Text&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 同名全局变量，直接 &amp;lt;code&amp;gt;DressPaint_Text:方法(...)&amp;lt;/code&amp;gt; 使用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;lt;Event Name=&amp;quot;Clicked&amp;quot; Function=&amp;quot;DressPaint_TurnLeft(1);&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 全局函数 &amp;lt;code&amp;gt;function DressPaint_TurnLeft(n)&amp;lt;/code&amp;gt;（可带实参）&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;lt;Property Name=&amp;quot;Text&amp;quot; Value=&amp;quot;#&amp;amp;#123;SZPR_XML_13&amp;amp;#125;&amp;quot; /&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 不写脚本，取值来自 &amp;lt;code&amp;gt;Data/Config/StrDictionary.txt&amp;lt;/code&amp;gt; 的 &amp;lt;code&amp;gt;SZPR_XML_13&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
事件绑定实测 5144 条指向具体全局函数，其中 &amp;#039;&amp;#039;&amp;#039;5081 条&amp;#039;&amp;#039;&amp;#039;能在同目录的 &amp;lt;code&amp;gt;.lua&amp;lt;/code&amp;gt; 里找到 &amp;lt;code&amp;gt;function 同名&amp;lt;/code&amp;gt; 定义；剩下 63 条要么在别的脚本里定义，要么是引擎内建回调。&lt;br /&gt;
&lt;br /&gt;
== 布局文件长什么样 ==&lt;br /&gt;
以 &amp;lt;code&amp;gt;DressPaint/DressPaint.layout.xml&amp;lt;/code&amp;gt; 开头几行为例（属性只留关键几条）：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre data-xml=&amp;quot;1&amp;quot;&amp;gt;&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;GUILayout&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;Window Type=&amp;quot;TLBB_MainFrame1&amp;quot; Name=&amp;quot;DressPaint_Frame&amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;Property Name=&amp;quot;UnifiedPosition&amp;quot; Value=&amp;quot;&amp;amp;#123;&amp;amp;#123;0.5,-250&amp;amp;#125;,&amp;amp;#123;0.5,-200&amp;amp;#125;&amp;quot; /&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;Property Name=&amp;quot;AbsoluteSize&amp;quot; Value=&amp;quot;w:500 h:365&amp;quot; /&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;Event Name=&amp;quot;Hidden&amp;quot; Function=&amp;quot;DressPaint_OnHiden();&amp;quot; /&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;Window Type=&amp;quot;TLBB_DragTitle&amp;quot; Name=&amp;quot;DressPaint_DragTitle&amp;quot;&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;Property Name=&amp;quot;DragTarget&amp;quot; Value=&amp;quot;DressPaint_Frame&amp;quot; /&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;Window Type=&amp;quot;TLBB_SimpleText&amp;quot; Name=&amp;quot;DressPaint_Title&amp;quot;&amp;amp;gt;&lt;br /&gt;
        &amp;amp;lt;Property Name=&amp;quot;Text&amp;quot; Value=&amp;quot;#&amp;amp;#123;SZPR_XML_13&amp;amp;#125;&amp;quot; /&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;/Window&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/Window&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/Window&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/GUILayout&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
要点：&amp;lt;code&amp;gt;&amp;amp;lt;Window&amp;amp;gt;&amp;lt;/code&amp;gt; 可以嵌套（子控件坐标相对父控件）；&amp;lt;code&amp;gt;Type&amp;lt;/code&amp;gt; 决定控件类（决定它有哪些方法可用）；&amp;lt;code&amp;gt;Name&amp;lt;/code&amp;gt; 决定脚本里的变量名，&amp;#039;&amp;#039;&amp;#039;同一界面内必须唯一&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
&lt;br /&gt;
== 控件类型（最常见）==&lt;br /&gt;
共 142 种类型。括号里是布局中出现的控件个数：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; class=&amp;quot;lua-w46&amp;quot; | 类型&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 个数&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_SimpleText&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2123&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_StaticImageNULL&amp;lt;/code&amp;gt;&lt;br /&gt;
| 1848&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_ActionButton&amp;lt;/code&amp;gt;&lt;br /&gt;
| 1438&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_ButtonCommon&amp;lt;/code&amp;gt;&lt;br /&gt;
| 974&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_SimpleMulitiTextFrame&amp;lt;/code&amp;gt;&lt;br /&gt;
| 901&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DefaultWindow&amp;lt;/code&amp;gt;&lt;br /&gt;
| 836&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_DragTitle&amp;lt;/code&amp;gt;&lt;br /&gt;
| 302&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_ButtonClose&amp;lt;/code&amp;gt;&lt;br /&gt;
| 300&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_ButtonHelp&amp;lt;/code&amp;gt;&lt;br /&gt;
| 292&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_ButtonNULL&amp;lt;/code&amp;gt;&lt;br /&gt;
| 285&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_Money&amp;lt;/code&amp;gt;&lt;br /&gt;
| 283&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_MainFrame1&amp;lt;/code&amp;gt;&lt;br /&gt;
| 214&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_Frame_Lace5&amp;lt;/code&amp;gt;&lt;br /&gt;
| 184&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_Frame_Lace1&amp;lt;/code&amp;gt;&lt;br /&gt;
| 170&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_ButtonCheck&amp;lt;/code&amp;gt;&lt;br /&gt;
| 164&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_StopWatch&amp;lt;/code&amp;gt;&lt;br /&gt;
| 150&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_MenuItem&amp;lt;/code&amp;gt;&lt;br /&gt;
| 149&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_MainFrameNULL&amp;lt;/code&amp;gt;&lt;br /&gt;
| 144&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_SimpleTextFrame&amp;lt;/code&amp;gt;&lt;br /&gt;
| 140&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TLBB_ActionButtonNULL&amp;lt;/code&amp;gt;&lt;br /&gt;
| 133&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
名字带 &amp;lt;code&amp;gt;TLBB_&amp;lt;/code&amp;gt; 前缀的是本项目的皮肤控件（外观在 &amp;lt;code&amp;gt;Data/Interface/Schema/&amp;lt;/code&amp;gt; 里定义）；&amp;lt;code&amp;gt;DefaultWindow&amp;lt;/code&amp;gt; 是 CEGUI 原生空容器，常用来做分组与对齐。控件上可用的方法见[[Lua接口/客户端窗口操作|窗口操作]]。&lt;br /&gt;
&lt;br /&gt;
== 常用属性（最常见）==&lt;br /&gt;
共 138 个属性名：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; class=&amp;quot;lua-w46&amp;quot; | 属性&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 出现次数&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;UnifiedPosition&amp;lt;/code&amp;gt;&lt;br /&gt;
| 8371&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;UnifiedSize&amp;lt;/code&amp;gt;&lt;br /&gt;
| 7420&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;AbsoluteSize&amp;lt;/code&amp;gt;&lt;br /&gt;
| 5141&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Text&amp;lt;/code&amp;gt;&lt;br /&gt;
| 4773&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;HorzFormatting&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3636&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;AbsolutePosition&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3531&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VertFormatting&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2714&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TextColor&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2452&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RiseOnClick&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2099&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MouseHollow&amp;lt;/code&amp;gt;&lt;br /&gt;
| 2053&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Image&amp;lt;/code&amp;gt;&lt;br /&gt;
| 1469&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MouseMoveHollow&amp;lt;/code&amp;gt;&lt;br /&gt;
| 1449&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Position&amp;lt;/code&amp;gt;&lt;br /&gt;
| 1367&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Visible&amp;lt;/code&amp;gt;&lt;br /&gt;
| 1112&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DraggingEnabled&amp;lt;/code&amp;gt;&lt;br /&gt;
| 885&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MouseRButtonHollow&amp;lt;/code&amp;gt;&lt;br /&gt;
| 868&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;AlwaysOnTop&amp;lt;/code&amp;gt;&lt;br /&gt;
| 836&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MouseLButtonHollow&amp;lt;/code&amp;gt;&lt;br /&gt;
| 829&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Size&amp;lt;/code&amp;gt;&lt;br /&gt;
| 818&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Empty&amp;lt;/code&amp;gt;&lt;br /&gt;
| 801&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;UnifiedPosition&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;UnifiedSize&amp;lt;/code&amp;gt; 是&amp;#039;&amp;#039;&amp;#039;相对父控件的比例 + 像素偏移&amp;#039;&amp;#039;&amp;#039;，写作 &amp;lt;code&amp;gt;&amp;amp;#123;&amp;amp;#123;0.5,-250&amp;amp;#125;,&amp;amp;#123;0.5,-200&amp;amp;#125;&amp;amp;#125;&amp;lt;/code&amp;gt; 表示「横向 50% 再左移 250px，纵向 50% 再上移 200px」；&amp;lt;code&amp;gt;AbsolutePosition&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;AbsoluteSize&amp;lt;/code&amp;gt; 则是绝对坐标，窗口拉伸时不会跟着变。&lt;br /&gt;
* &amp;lt;code&amp;gt;RiseOnClick&amp;lt;/code&amp;gt; 与 &amp;lt;code&amp;gt;MouseHollow&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;MouseMoveHollow&amp;lt;/code&amp;gt; 影响点击穿透，叠放控件时最容易出问题。&lt;br /&gt;
* 颜色属性写 &amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; 形式的十六进制。&lt;br /&gt;
&lt;br /&gt;
== 事件（最常见）==&lt;br /&gt;
共 41 种事件名、5991 条绑定：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; class=&amp;quot;lua-w46&amp;quot; | 事件&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 绑定次数&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Clicked&amp;lt;/code&amp;gt;&lt;br /&gt;
| 3204&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RBClicked&amp;lt;/code&amp;gt;&lt;br /&gt;
| 530&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MouseLButtonDown&amp;lt;/code&amp;gt;&lt;br /&gt;
| 451&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MouseButtonUp&amp;lt;/code&amp;gt;&lt;br /&gt;
| 258&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MouseRClick&amp;lt;/code&amp;gt;&lt;br /&gt;
| 245&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Hidden&amp;lt;/code&amp;gt;&lt;br /&gt;
| 200&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MouseEnter&amp;lt;/code&amp;gt;&lt;br /&gt;
| 196&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MouseLeave&amp;lt;/code&amp;gt;&lt;br /&gt;
| 181&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MouseButtonDown&amp;lt;/code&amp;gt;&lt;br /&gt;
| 161&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CaptureLost&amp;lt;/code&amp;gt;&lt;br /&gt;
| 109&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MouseLClick&amp;lt;/code&amp;gt;&lt;br /&gt;
| 90&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MouseDoubleClick&amp;lt;/code&amp;gt;&lt;br /&gt;
| 69&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Hidden&amp;lt;/code&amp;gt; 是界面被隐藏时触发（用于收尾清理），&amp;lt;code&amp;gt;Clicked&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;RBClicked&amp;lt;/code&amp;gt; 是左/右键点击，&amp;lt;code&amp;gt;CaptureLost&amp;lt;/code&amp;gt; 常用于「按住拖动后松手」的收尾。&lt;br /&gt;
&lt;br /&gt;
== 命名约定 ==&lt;br /&gt;
* 框架窗口用 &amp;lt;code&amp;gt;&amp;amp;lt;界面&amp;amp;gt;_Frame&amp;lt;/code&amp;gt;，标题栏 &amp;lt;code&amp;gt;&amp;amp;lt;界面&amp;amp;gt;_DragTitle&amp;lt;/code&amp;gt;，标题文字 &amp;lt;code&amp;gt;&amp;amp;lt;界面&amp;amp;gt;_Title&amp;lt;/code&amp;gt;，关闭 &amp;lt;code&amp;gt;&amp;amp;lt;界面&amp;amp;gt;_Close&amp;lt;/code&amp;gt;，帮助 &amp;lt;code&amp;gt;&amp;amp;lt;界面&amp;amp;gt;_Help&amp;lt;/code&amp;gt;。界面索引里的大多数中文名正是靠 &amp;lt;code&amp;gt;_Frame&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;_DragTitle&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;_Title&amp;lt;/code&amp;gt; 这三个名字反查到的。&lt;br /&gt;
* 控件名一律带界面前缀（&amp;lt;code&amp;gt;DressPaint_Text&amp;lt;/code&amp;gt; 而不是 &amp;lt;code&amp;gt;Text&amp;lt;/code&amp;gt;）：注册成全局变量后，不带前缀极易和别的界面撞名。&lt;br /&gt;
* 布局里的可见文字&amp;#039;&amp;#039;&amp;#039;不写中文&amp;#039;&amp;#039;&amp;#039;，写 &amp;lt;code&amp;gt;#&amp;amp;#123;键名&amp;amp;#125;&amp;lt;/code&amp;gt; 并在 &amp;lt;code&amp;gt;StrDictionary.txt&amp;lt;/code&amp;gt; 里给键值；直接写中文不会进字符串表，改字与多语言都会失控。&lt;br /&gt;
&lt;br /&gt;
== 改界面时会踩的坑 ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;界面目录名 ≠ 窗口名&amp;#039;&amp;#039;&amp;#039;：&amp;lt;code&amp;gt;OpenWindow(&amp;quot;X&amp;quot;)&amp;lt;/code&amp;gt; 用的是窗口名，而窗口名由创建界面的代码给出。改目录名不会改窗口名，两者不一致是常态（如 &amp;lt;code&amp;gt;Materalcompose/MaterialCompound.lua&amp;lt;/code&amp;gt;）。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;一个目录可能有多套界面&amp;#039;&amp;#039;&amp;#039;（如 &amp;lt;code&amp;gt;GuildLeague&amp;lt;/code&amp;gt; 下 4 个脚本各自一套），改布局前先确认改的是对的那个 &amp;lt;code&amp;gt;.layout.xml&amp;lt;/code&amp;gt;。&lt;br /&gt;
* 客户端脚本里的数值（成功率、花费、坐标）&amp;#039;&amp;#039;&amp;#039;只决定界面怎么显示&amp;#039;&amp;#039;&amp;#039;，真正的判定在服务端；想让玩法变，改的不是这里。&lt;br /&gt;
* 新增控件后如果脚本里取到 &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;，先确认 &amp;lt;code&amp;gt;Name&amp;lt;/code&amp;gt; 拼写、是否重复、以及是否在 &amp;lt;code&amp;gt;_PreLoad&amp;lt;/code&amp;gt; 阶段就访问了。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Waylee</name></author>
	</entry>
</feed>