| 
									
										
										
										
											2024-12-11 15:08:57 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 文件名: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; | 
					
						
							| 
									
										
										
										
											2025-02-20 13:53:36 +08:00
										 |  |  |     OnClickMoveSound = null; | 
					
						
							|  |  |  |     OnClickMoveSoundFlag = false; | 
					
						
							| 
									
										
										
										
											2024-12-11 15:08:57 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     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 | 
					
						
							|  |  |  |     //鼠标事件回调 | 
					
						
							| 
									
										
										
										
											2025-02-20 13:53:36 +08:00
										 |  |  |     function OnMouseProc(MousePos_X, MousePos_Y, WindowInteractiveFlag) { | 
					
						
							| 
									
										
										
										
											2024-12-11 15:08:57 +08:00
										 |  |  |         local Pos = GetWorldPosition(); | 
					
						
							| 
									
										
										
										
											2025-02-20 13:53:36 +08:00
										 |  |  |         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); | 
					
						
							| 
									
										
										
										
											2024-12-11 15:08:57 +08:00
										 |  |  |     } | 
					
						
							|  |  |  |     //鼠标左键按下回调 | 
					
						
							| 
									
										
										
										
											2025-02-20 13:53:36 +08:00
										 |  |  |     function OnMouseLbDown(MousePos_X, MousePos_Y, WindowInteractiveFlag) { | 
					
						
							| 
									
										
										
										
											2024-12-11 15:08:57 +08:00
										 |  |  |         local Pos = GetWorldPosition(); | 
					
						
							|  |  |  |         if (Math.IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, Pos.x, Pos.y, Width, Height)) { | 
					
						
							|  |  |  |             isLBDown = true; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-02-20 13:53:36 +08:00
										 |  |  |         base.OnMouseLbDown(MousePos_X, MousePos_Y, WindowInteractiveFlag); | 
					
						
							| 
									
										
										
										
											2024-12-11 15:08:57 +08:00
										 |  |  |     } | 
					
						
							|  |  |  |     //鼠标左键弹起回调 | 
					
						
							| 
									
										
										
										
											2025-02-20 13:53:36 +08:00
										 |  |  |     function OnMouseLbUp(MousePos_X, MousePos_Y, WindowInteractiveFlag) { | 
					
						
							| 
									
										
										
										
											2024-12-11 15:08:57 +08:00
										 |  |  |         isLBDown = false; | 
					
						
							| 
									
										
										
										
											2025-02-20 13:53:36 +08:00
										 |  |  |         base.OnMouseLbUp(MousePos_X, MousePos_Y, WindowInteractiveFlag); | 
					
						
							| 
									
										
										
										
											2024-12-11 15:08:57 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //鼠标左键单击回调 | 
					
						
							| 
									
										
										
										
											2025-02-20 13:53:36 +08:00
										 |  |  |     function OnMouseLbClick(MousePos_X, MousePos_Y, WindowInteractiveFlag) { | 
					
						
							| 
									
										
										
										
											2024-12-11 15:08:57 +08:00
										 |  |  |         local Pos = GetWorldPosition(); | 
					
						
							|  |  |  |         if (Math.IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, Pos.x, Pos.y, Width, Height)) { | 
					
						
							|  |  |  |             if (OnClick) OnClick(this); | 
					
						
							| 
									
										
										
										
											2024-12-19 23:55:56 +08:00
										 |  |  |             //如果有配置按键音效 | 
					
						
							|  |  |  |             if (OnClickSound) { | 
					
						
							|  |  |  |                 Sq_PlaySoundEffect(OnClickSound); | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2024-12-11 15:08:57 +08:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-02-20 13:53:36 +08:00
										 |  |  |         base.OnMouseLbClick(MousePos_X, MousePos_Y, WindowInteractiveFlag); | 
					
						
							| 
									
										
										
										
											2024-12-14 11:14:20 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-07 20:52:28 +08:00
										 |  |  | } |