|
@@ -75,8 +75,8 @@ function _kcr(_key, _priority = 0) {
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-function input_handle(_name, _priority) constructor {
|
|
|
|
|
- name = _name;
|
|
|
|
|
|
|
+function input_handle(_reg_name, _priority) constructor {
|
|
|
|
|
+ reg_name = _reg_name;
|
|
|
priority = _priority;
|
|
priority = _priority;
|
|
|
// 理论上,你不应该修改active来控制启用情况,而是使用标准的注册注销流程
|
|
// 理论上,你不应该修改active来控制启用情况,而是使用标准的注册注销流程
|
|
|
active = true;
|
|
active = true;
|
|
@@ -121,4 +121,45 @@ function input_handle(_name, _priority) constructor {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/// @desc 通过注册名寻找句柄
|
|
|
|
|
+/// @param {String} _reg_name 注册名
|
|
|
|
|
+function input_handle_find(_reg_name) {
|
|
|
|
|
+ var _len = array_length(global.input_handles_index);
|
|
|
|
|
+ for (var i = 0; i < _len; i++) {
|
|
|
|
|
+ if (global.input_handles_list[i].reg_name == _reg_name) {
|
|
|
|
|
+ return global.input_handles_list[i];
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return undefined;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/// @desc 自动化注册句柄,核心部分等效于 _new_handle = new input_handle(_reg_name, _priority)
|
|
|
|
|
+/// @param {String} _func_name handle变量名
|
|
|
|
|
+/// @param {String} _reg_name 注册名
|
|
|
|
|
+/// @param {Real} _priority 优先级
|
|
|
|
|
+function autoreg_handle(_func_name, _reg_name, _priority){
|
|
|
|
|
+ var _found = false;
|
|
|
|
|
+ var _len = array_length(global.input_handles_index);
|
|
|
|
|
+ for (var i = 0; i < _len; i++) {
|
|
|
|
|
+ if (global.input_handles_index[i] == _func_name) {
|
|
|
|
|
+ _found = true;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!_found) throw("ERROR:尝试注册的变量名'" + _func_name + "'不在input_handles_index内")
|
|
|
|
|
+
|
|
|
|
|
+ var _new_handle = new input_handle(_reg_name, _priority);
|
|
|
|
|
+ variable_instance_set(id, _func_name, _new_handle);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/// @desc 自动化注销句柄
|
|
|
|
|
+/// @param {String} _func_name handle变量名
|
|
|
|
|
+function autodel_handle(_func_name){
|
|
|
|
|
+ var _handle = variable_instance_get(id, _func_name);
|
|
|
|
|
+ if (_handle != undefined && is_struct(_handle)) {
|
|
|
|
|
+ _handle.destroy();
|
|
|
|
|
+ variable_instance_set(id, _func_name, undefined);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|