UI核心 增加鼠标类的注入

This commit is contained in:
Lenheart 2024-12-18 18:51:48 +08:00
parent 18acd45a4a
commit 0183ede4f3
1 changed files with 8 additions and 3 deletions

View File

@ -4,6 +4,8 @@
创建日期:2024-11-08 03:25 创建日期:2024-11-08 03:25
文件用途:UI核心类 文件用途:UI核心类
*/ */
//UI层Actor
_UiObject_ <- null;
//窗口队列 //窗口队列
_SYS_WINDOW_LIST_ <- []; _SYS_WINDOW_LIST_ <- [];
//基础窗口类 所有UI类继承与本类 //基础窗口类 所有UI类继承与本类
@ -368,21 +370,21 @@ function Sq_CreateWindow(ClassName, gObjectId, gX, gY, gWidth, gHeight, gTitleH)
//窗口逻辑入口 C回调 //窗口逻辑入口 C回调
function _Yosin_Windows_Logic_(Dt, Ui_Layer) { function _Yosin_Windows_Logic_(Dt, Ui_Layer) {
local UiObject = Actor(Ui_Layer); _UiObject_ = Actor(Ui_Layer);
//遍历窗口队列 如果可见则调用Show //遍历窗口队列 如果可见则调用Show
for (local i = 0; i< _SYS_WINDOW_LIST_.len(); i++) { for (local i = 0; i< _SYS_WINDOW_LIST_.len(); i++) {
local Window = _SYS_WINDOW_LIST_[i]; local Window = _SYS_WINDOW_LIST_[i];
//根据是否显示 决定是否添加到舞台 //根据是否显示 决定是否添加到舞台
if (!Window.Visible && Window.ParentFlag) { if (!Window.Visible && Window.ParentFlag) {
Window.ParentFlag = null; Window.ParentFlag = null;
UiObject.Removechild(Window); _UiObject_.Removechild(Window);
if (Window.DestroyFlag) { if (Window.DestroyFlag) {
_SYS_WINDOW_LIST_.remove(i); _SYS_WINDOW_LIST_.remove(i);
i--; i--;
} }
} else if (Window.Visible && (!Window.ParentFlag)) { } else if (Window.Visible && (!Window.ParentFlag)) {
Window.ParentFlag = true; Window.ParentFlag = true;
UiObject.Addchild(Window); _UiObject_.Addchild(Window);
} }
//无论窗口是否显示都需要调用Proc //无论窗口是否显示都需要调用Proc
Window.Proc(Dt); Window.Proc(Dt);
@ -393,8 +395,11 @@ function _Yosin_Windows_Logic_(Dt, Ui_Layer) {
//鼠标点击Flag //鼠标点击Flag
_Mouse_Click_Flag <- {}; _Mouse_Click_Flag <- {};
_Yosin_Cursor();
//鼠标逻辑入口 //鼠标逻辑入口
function _Yosin_Windows_Mouse_Logic_(MouseState, Wheel, MousePos_X, MousePos_Y) { function _Yosin_Windows_Mouse_Logic_(MouseState, Wheel, MousePos_X, MousePos_Y) {
Yosin_Cursor.Event(MouseState, Wheel, MousePos_X, MousePos_Y);
//克隆一遍窗口列表 //克隆一遍窗口列表
local WindowListF = clone(_SYS_WINDOW_LIST_); local WindowListF = clone(_SYS_WINDOW_LIST_);
WindowListF.reverse(); WindowListF.reverse();