如何响应界面事件
在 custom_ui.lua
的逻辑代码中实现对应的回调函数即可,如
custom = {}
-- 注册游戏逻辑
game_events.register_ui_logic(custom)
-- 按钮被点击
custom.on_button_clicked = function(button_id)
-- 调用游戏接口,请求释放技能
game.CastSpell(1, true)
end
button_clicked
on_button_clicked(button_id)
按钮被点击
参数列表
button_id [string]
按钮控件的 id
button_right_clicked
on_button_right_clicked(button_id)
按钮被右击
参数列表
button_id [string]
按钮控件的 id
button_drag_and_drop
on_button_drag_and_drop(drag_info)
结束拖拽按钮
参数列表
drag_info [table]
包含两个子属性source_id [string]
被拖放按钮的 idtarget_id [string]
松开鼠标时,鼠标指针所在按钮的 id,如果松开鼠标时鼠标指针没有在任何按钮上,此值为nil
button_mouse_enter
on_button_mouse_enter(button_id)
鼠标指针移入按钮,一般在这个回调里调用 set_tooltip
显示提示信息
参数列表
button_id [string]
按钮控件的 id
button_mouse_leave
on_button_mouse_leave(button_id)
鼠标指针移出按钮,一般在这个回调里调用 remove_tooltip
移除提示信息
参数列表
button_id [string]
按钮控件的 id
button_mousedown
on_button_mousedown(button_id)
按钮按下
参数列表
button_id [string]
按钮控件的 id
button_mouseup
on_button_mouseup(button_id)
按钮弹起
参数列表
button_id [string]
按钮控件的 id
button_touch_started
on_button_touch_started(button_id, localPosX, localPosY)
按下按钮
[只在移动平台使用]因移动平台以手指触控操作为主,没有鼠标的概念,故与PC平台的事件分开. 表示刚开始按下按钮,此时会捕获焦点.
[针对所有捕获焦点的控件,后文不再重复提示]在第一个手指按下(滑动)按钮期间,其他手指再次操作此按钮不会生效,即只会响应第一个按下的手指的事件
参数列表
button_id [string]
按钮控件的 idlocalPosX [number]
按下位置在按钮控件的本地坐标XlocalPosY [number]
按下位置在按钮控件的本地坐标Y
button_touch_moved
on_button_touch_moved(button_id, localPosX, localPosY)
在按钮上滑动
[只在移动平台使用]因移动平台以手指触控操作为主,没有鼠标的概念,故与PC平台的事件分开. 表示在按钮上的滑动操作,按钮会持有焦点,因此手指离开按钮区域,仍然可以接受到move事件
参数列表
button_id [string]
按钮控件的 idlocalPosX [number]
手指位置在按钮控件的本地坐标XlocalPosY [number]
手指位置在按钮控件的本地坐标Y
button_touch_ended
on_button_touch_ended(button_id, localPosX, localPosY)
松开按钮
[只在移动平台使用]因移动平台以手指触控操作为主,没有鼠标的概念,故与PC平台的事件分开. 表示手指离开屏幕,松开按钮(不是手指离开按钮控件区域)
参数列表
button_id [string]
按钮控件的 idlocalPosX [number]
手指位置在按钮控件的本地坐标XlocalPosY [number]
手指位置在按钮控件的本地坐标Y
label_mouse_enter
on_label_mouse_enter(label_id)
鼠标指针移入标签,一般在这个回调里调用 set_tooltip
显示提示信息
参数列表
label_id [string]
标签控件的 id
label_mouse_leave
on_label_mouse_leave(label_id)
鼠标指针移出标签,一般在这个回调里调用 remove_tooltip
移除提示信息
参数列表
label_id [string]
标签控件的 id
label_touch_started
on_label_touch_started(label_id, InLocalPosX, InLocalPosY)
[只在移动平台使用]开始按下标签,不捕获焦点!!!, 手指移动出界(离开标有效签范围)则收不到该标签的任何事件,多个手指连续点击标签的事件都会被响应
参数列表
label_id [string]
标签控件的 idInLocalPosX [number]
手指在标签的本地坐标XInLocalPosY [number]
手指在标签的本地坐标Y
label_touch_moved
on_label_touch_moved(label_id, InLocalPosX, InLocalPosY)
[只在移动平台使用]手指在标签上滑动(包括从标签之外的区域滑动进入标签区域)
参数列表
label_id [string]
标签控件的 idInLocalPosX [number]
手指在标签的本地坐标XInLocalPosY [number]
手指在标签的本地坐标Y
label_touch_ended
on_label_touch_ended(label_id, InLocalPosX, InLocalPosY)
[只在移动平台使用]手指标签上离开屏幕(不包括从标签区域滑动离开标签区域)
参数列表
label_id [string]
标签控件的 idInLocalPosX [number]
手指在标签的本地坐标XInLocalPosY [number]
手指在标签的本地坐标Y
canvas_clicked
on_canvas_clicked(canvas_id, x, y)
画布控件被点击
参数列表
canvas_id [string]
画布控件的 idx [int]
y [int]
点击时鼠标指针相对于画布左上角的坐标
canvas_right_clicked
on_canvas_right_clicked(canvas_id, x, y)
画布控件被右击
参数列表
canvas_id [string]
画布控件的 idx [int]
y [int]
点击时鼠标指针相对于画布左上角的坐标
canvas_mousedown
on_canvas_mousedown(canvas_id, x, y)
画布控件被按下
参数列表
canvas_id [string]
画布控件的 idx [int]
y [int]
点击时鼠标指针相对于画布左上角的坐标
canvas_mousemove
on_canvas_mousemove(canvas_id, x, y)
画布控件的move事件
参数列表
canvas_id [string]
画布控件的 idx [int]
y [int]
点击时鼠标指针相对于画布左上角的坐标
canvas_mouseup
on_canvas_mouseup(canvas_id, x, y)
画布控件的move事件
参数列表
canvas_id [string]
画布控件的 idx [int]
y [int]
点击时鼠标指针相对于画布左上角的坐标
canvas_mouseleave
on_canvas_mouseleave(canvas_id, x, y)
画布控件的leave事件
参数列表
canvas_id [string]
画布控件的 id
canvas_mouseenter
on_canvas_mouseenter(canvas_id, x, y)
画布控件的enter事件
参数列表
canvas_id [string]
画布控件的 id
input_text_changed
on_input_text_changed(input_id, text)
输入框文本改变
参数列表
input_id [string]
输入框 idtext [string]
输入框文本
input_get_focus
on_input_get_focus(input_id)
输入框得到焦点
参数列表
input_id [string]
输入框 id
input_lose_focus
on_input_lose_focus(input_id)
输入框失去焦点
参数列表
input_id [string]
输入框 id
input_mousedown
on_input_mousedown(input_id, which_state)
输入框中哪个鼠标按键按下
参数列表
input_id [string]
输入框 idwhich_state [int]
哪个鼠标按键按下(1: 左键 2:中键 3:右键)
input_mouse_enter
on_input_mouse_enter(input_id)
鼠标指针移入输入框控件
参数列表
input_id [string]
输入框 id
input_mouse_leave
on_input_mouse_leave(input_id)
鼠标指针移出输入框控件
参数列表
input_id [string]
输入框 id
panel_mouse_enter
on_panel_mouse_move(panel_id)
鼠标进入面板
参数列表
panel_id [string]
面板 id
panel_mouse_leave
on_panel_mouse_move(panel_id)
鼠标进入面板
参数列表
panel_id [string]
面板 id
panel_clicked
on_panel_clicked(panel_id)
面板被点击
参数列表
panel_id [string]
面板 id
joystick_touch_started
on_joystick_touch_started(Joystick_id, DirX, DirY)
开始按下摇杆
[只在移动平台使用] 按下摇杆后会捕获焦点,即使手指离开控件视觉范围,依然可以滑动摇杆
参数列表
Joystick_id [string]
摇杆 idDirX [number]
摇杆的操作方向X [0.0, 1.0]DirY [number]
摇杆的操作方向Y [0.0, 1.0]
(0.0, -1.0)
上
|
|
|
(-1.0, 0.0)左一一一摇杆中心(0.0, 0.0)一一一右(1.0, 0.0)
|
|
|
下
(0.0, 1.0)
joystick_touch_moved
on_joystick_touch_moved(Joystick_id, DirX, DirY)
滑动摇杆
[只在移动平台使用] 持有焦点,无论手指是否在摇杆控件可视范围内,都能收到滑动事件
参数列表
Joystick_id [string]
摇杆 idDirX [number]
摇杆的操作方向X [0.0, 1.0]DirY [number]
摇杆的操作方向Y [0.0, 1.0]
joystick_touch_ended
on_joystick_touch_ended(Joystick_id, DirX, DirY)
松开摇杆(手指离开屏幕,不是离开摇杆控件范围)
[只在移动平台使用]
参数列表
Joystick_id [string]
摇杆 idDirX [number]
摇杆的操作方向X [0.0, 1.0]DirY [number]
摇杆的操作方向Y [0.0, 1.0]