82 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /*
 | |
| 文件名: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);
 | |
|     }
 | |
| 
 | |
| } |