# miniExtend Object
对应源文件: time.lua
。
在阅读 miniExtend Event 和 miniExtend CustomUI 前, 可能很难理解这部分的强大功能。这是很正常的。
目前 miniExtend Object 内容较少,且主要以理解为主。
Object 的核心是 _G2["__OBJID"]
,以下简称 objid
。
在调用 miniExtend 的一些函数时, objid
会作为游戏对象默认参数(参数名形如 ...id
,如 playerid
)。
# 函数介绍
WARNING
miniExtend 没有 Object
作用域,以下函数都是全局函数。
# getObjectId
参数:无。
返回 objid
的值。
为了更好的兼容性,你应该使用 getObjidId()
函数获取 objid
的值,而不是直接从 _G2
中取。
# setObjectId
设置 _G2["__OBJID"]
的值。
参数:
objid
:需要设置_G2["__OBJID"]
的新值。
TIP
由于命名冲突,这里 objid
表示 objid
参数。
如果 objid
是一个数字,直接设置 _G2["__OBJID"]
为 objid
,不会检查 objid
是否合法。
如果 objid
是一个表,且 eventobjid
键对应的值为 number
类型,设置 _G2["__OBJID"]
为 objid["eventobjid"]
。这在事件的回调中非常有用,只需传递回调函数的表参数,就能自动索引 eventobjid
键。
# 示例
对于CustomUI.UIView.show([playerid])
,你可以不传递 playerid
参数调用该函数,这时 objid
将代替 playerid
参数。
以下代码假设你已经搭建好 miniExtend UI 环境了。
示例功能:当任意玩家进入游戏时,玩家会打开 uiview
界面。
-- 需替换为 UI 界面 id
local uiid = [[]]
uiview = CustomUI:newUIView(uiid)
-- 任意玩家进入游戏事件
Event:connect([[Game.AnyPlayer.EnterGame]], function(param)
-- 注意:objid 已被隐式地设置为 param.eventobjid
-- 等价于调用 uiview:show(getObjectId())
uiview:show()
end, uiid)