/* 文件名:UI_Widget.nut 路径:Core/UI_Class/UI_Widget.nut 创建日期:2024-11-08 14:24 文件用途: 控件基类 */ //基础UI class Yosin_CommonUi extends Yosin_BaseWindow { ObjectId = null; Localtion_X = 0; Localtion_Y = 0; isLBDown = false; //是否悬停 isInRect = false; OnClick = null; OnClickSound = null; OnClickMoveSound = null; OnClickMoveSoundFlag = false; Data = null; constructor(x, y, width, height) { this.Localtion_X = x; this.Localtion_Y = y; this.Width = width; this.Height = height; ObjectId = clock(); base.constructor(); //构造时第一次同步坐标 SyncPos(x, y); } //override //鼠标事件回调 function OnMouseProc(MousePos_X, MousePos_Y, WindowInteractiveFlag) { local Pos = GetWorldPosition(); if (Math.IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, Pos.x, Pos.y, Width, Height)) { //如果有配置移动音效 if (OnClickMoveSound && !OnClickMoveSoundFlag) { OnClickMoveSoundFlag = true; Sq_PlaySoundEffect(OnClickMoveSound); } isInRect = true; } else { OnClickMoveSoundFlag = false; isInRect = false; } base.OnMouseProc(MousePos_X, MousePos_Y, WindowInteractiveFlag); } //鼠标左键按下回调 function OnMouseLbDown(MousePos_X, MousePos_Y, WindowInteractiveFlag) { local Pos = GetWorldPosition(); if (Math.IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, Pos.x, Pos.y, Width, Height)) { isLBDown = true; } base.OnMouseLbDown(MousePos_X, MousePos_Y, WindowInteractiveFlag); } //鼠标左键弹起回调 function OnMouseLbUp(MousePos_X, MousePos_Y, WindowInteractiveFlag) { isLBDown = false; base.OnMouseLbUp(MousePos_X, MousePos_Y, WindowInteractiveFlag); } //鼠标左键单击回调 function OnMouseLbClick(MousePos_X, MousePos_Y, WindowInteractiveFlag) { local Pos = GetWorldPosition(); if (Math.IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, Pos.x, Pos.y, Width, Height)) { if (OnClick) OnClick(this); //如果有配置按键音效 if (OnClickSound) { Sq_PlaySoundEffect(OnClickSound); } } base.OnMouseLbClick(MousePos_X, MousePos_Y, WindowInteractiveFlag); } }