新增鼠标类
This commit is contained in:
parent
97721e04a4
commit
052f86d102
|
|
@ -0,0 +1,124 @@
|
||||||
|
/*
|
||||||
|
文件名:UI_Cursor.nut
|
||||||
|
路径:Core/UI_Class/UI_Cursor.nut
|
||||||
|
创建日期:2024-12-18 13:41
|
||||||
|
文件用途:
|
||||||
|
*/
|
||||||
|
class _Yosin_Cursor extends Actor {
|
||||||
|
|
||||||
|
Object = null;
|
||||||
|
|
||||||
|
_Mouse_Click_Flag = null;
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
base.constructor();
|
||||||
|
_Mouse_Click_Flag = {};
|
||||||
|
|
||||||
|
getroottable().Yosin_Cursor <- this;
|
||||||
|
}
|
||||||
|
|
||||||
|
//初始化
|
||||||
|
function Init() {
|
||||||
|
//鼠标层级高于一切
|
||||||
|
SetZOrder(20000000);
|
||||||
|
_UiObject_.Addchild(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
//更换鼠标指针
|
||||||
|
function Change(Frame) {
|
||||||
|
if (Object) {
|
||||||
|
Removechild(Object);
|
||||||
|
}
|
||||||
|
Object = Frame;
|
||||||
|
Addchild(Frame);
|
||||||
|
}
|
||||||
|
|
||||||
|
//事件
|
||||||
|
function Event(MouseState, Wheel, MousePos_X, MousePos_Y) {
|
||||||
|
switch (MouseState) {
|
||||||
|
//常规或者拖动事件
|
||||||
|
case 0x305: {
|
||||||
|
SetPosition(MousePos_X, MousePos_Y);
|
||||||
|
OnMouseProc(MousePos_X, MousePos_Y);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//左键按下
|
||||||
|
case 0x101: {
|
||||||
|
_Mouse_Click_Flag.LbFlag <- true;
|
||||||
|
OnMouseLbDown(MousePos_X, MousePos_Y);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//左键松开
|
||||||
|
case 0x001: {
|
||||||
|
//左键单击
|
||||||
|
if (_Mouse_Click_Flag.LbFlag == true) {
|
||||||
|
_Mouse_Click_Flag.LbFlag <- false;
|
||||||
|
OnMouseLbClick(MousePos_X, MousePos_Y);
|
||||||
|
}
|
||||||
|
OnMouseLbUp(MousePos_X, MousePos_Y);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//右键按下
|
||||||
|
case 0x102: {
|
||||||
|
_Mouse_Click_Flag.RbFlag <- true;
|
||||||
|
OnMouseRbDown(MousePos_X, MousePos_Y);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//右键松开
|
||||||
|
case 0x002: {
|
||||||
|
//右键单击
|
||||||
|
if (_Mouse_Click_Flag.RbFlag == true) {
|
||||||
|
_Mouse_Click_Flag.RbFlag <- false;
|
||||||
|
OnMouseRbClick(MousePos_X, MousePos_Y);
|
||||||
|
}
|
||||||
|
OnMouseRbUp(MousePos_X, MousePos_Y);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//中键按下
|
||||||
|
case 0x103: {
|
||||||
|
_Mouse_Click_Flag.MbFlag <- true;
|
||||||
|
OnMouseMbDown(MousePos_X, MousePos_Y);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//中键松开
|
||||||
|
case 0x003: {
|
||||||
|
//中键单击
|
||||||
|
if (_Mouse_Click_Flag.MbFlag == true) {
|
||||||
|
_Mouse_Click_Flag.MbFlag <- false;
|
||||||
|
OnMouseMbClick(MousePos_X, MousePos_Y);
|
||||||
|
}
|
||||||
|
OnMouseMbUp(MousePos_X, MousePos_Y);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//滚轮事件
|
||||||
|
case 0x406: {
|
||||||
|
OnMouseWheel(Wheel, MousePos_X, MousePos_Y);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//鼠标事件回调
|
||||||
|
function OnMouseProc(MousePos_X, MousePos_Y) {}
|
||||||
|
//鼠标左键按下回调
|
||||||
|
function OnMouseLbDown(MousePos_X, MousePos_Y) {}
|
||||||
|
//鼠标左键单击回调
|
||||||
|
function OnMouseLbClick(MousePos_X, MousePos_Y) {}
|
||||||
|
//鼠标左键弹起回调
|
||||||
|
function OnMouseLbUp(MousePos_X, MousePos_Y) {}
|
||||||
|
//鼠标右键按下回调
|
||||||
|
function OnMouseRbDown(MousePos_X, MousePos_Y) {}
|
||||||
|
//鼠标右键单击回调
|
||||||
|
function OnMouseRbClick(MousePos_X, MousePos_Y) {}
|
||||||
|
//鼠标右键弹起回调
|
||||||
|
function OnMouseRbUp(MousePos_X, MousePos_Y) {}
|
||||||
|
//鼠标中键按下回调
|
||||||
|
function OnMouseMbDown(MousePos_X, MousePos_Y) {}
|
||||||
|
//鼠标中键单击回调
|
||||||
|
function OnMouseMbClick(MousePos_X, MousePos_Y) {}
|
||||||
|
//鼠标中键弹起回调
|
||||||
|
function OnMouseMbUp(MousePos_X, MousePos_Y) {}
|
||||||
|
//鼠标滚轮事件回调
|
||||||
|
function OnMouseWheel(Wheel, MousePos_X, MousePos_Y) {}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,65 @@
|
||||||
|
/*
|
||||||
|
文件名:IMouse.nut
|
||||||
|
路径:User/UI/Widget/IMouse.nut
|
||||||
|
创建日期:2024-12-18 14:03
|
||||||
|
文件用途:
|
||||||
|
*/
|
||||||
|
class _IMouse_ extends _Yosin_Cursor {
|
||||||
|
|
||||||
|
NormalC = null;
|
||||||
|
//普通状态0
|
||||||
|
State = 0;
|
||||||
|
Idx = 0;
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
NormalC = [];
|
||||||
|
base.constructor();
|
||||||
|
getroottable().IMouse <- this;
|
||||||
|
|
||||||
|
//关闭系统鼠标
|
||||||
|
Sq_ShowCursor(false);
|
||||||
|
|
||||||
|
//调用父类初始化 将自己添加为UI层子对象
|
||||||
|
Init();
|
||||||
|
//初始化所有普通图标
|
||||||
|
InitSprite();
|
||||||
|
|
||||||
|
//更换为0号指针
|
||||||
|
Change(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
//初始化普通鼠标指针
|
||||||
|
function InitSprite() {
|
||||||
|
for (local i = 0; i< 254; i++) {
|
||||||
|
local Sp = CL_SpriteObject("sprite/interface/newstyle/windows/cursor.img", i);
|
||||||
|
NormalC.push(Sp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//更换普通鼠标指针
|
||||||
|
function Change(Idx) {
|
||||||
|
State = 0;
|
||||||
|
this.Idx = Idx;
|
||||||
|
local Sp = NormalC[Idx];
|
||||||
|
base.Change(Sp);
|
||||||
|
}
|
||||||
|
|
||||||
|
function OnMouseProc(MousePos_X, MousePos_Y) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//按下
|
||||||
|
function OnMouseLbDown(MousePos_X, MousePos_Y) {
|
||||||
|
//普通状态的点击效果
|
||||||
|
if (Idx == 0) {
|
||||||
|
Change(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//抬起
|
||||||
|
function OnMouseLbUp(MousePos_X, MousePos_Y) {
|
||||||
|
//普通状态的点击效果
|
||||||
|
if (Idx == 1) {
|
||||||
|
Change(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue