|
@@ -135,6 +135,18 @@ function input_handle_find(_reg_name) {
|
|
|
return undefined;
|
|
return undefined;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/// @desc 创建空句柄
|
|
|
|
|
+function create_dummy_handle(){
|
|
|
|
|
+ global.handle_dummy = {
|
|
|
|
|
+ kc: function() { return false; },
|
|
|
|
|
+ kcp: function() { return false; },
|
|
|
|
|
+ kcr: function() { return false; },
|
|
|
|
|
+ destroy: function() { },
|
|
|
|
|
+ active: false,
|
|
|
|
|
+ priority: -9999
|
|
|
|
|
+};
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
/// @desc 自动化注册句柄,核心部分等效于 _new_handle = new input_handle(_reg_name, _priority)
|
|
/// @desc 自动化注册句柄,核心部分等效于 _new_handle = new input_handle(_reg_name, _priority)
|
|
|
/// @param {String} _func_name handle变量名
|
|
/// @param {String} _func_name handle变量名
|
|
|
/// @param {String} _reg_name 注册名
|
|
/// @param {String} _reg_name 注册名
|
|
@@ -150,6 +162,12 @@ function autoreg_handle(_func_name, _reg_name, _priority){
|
|
|
}
|
|
}
|
|
|
if (!_found) throw("ERROR:尝试注册的变量名'" + _func_name + "'不在input_handles_index内")
|
|
if (!_found) throw("ERROR:尝试注册的变量名'" + _func_name + "'不在input_handles_index内")
|
|
|
|
|
|
|
|
|
|
+ var _current = variable_instance_get(id, _func_name);
|
|
|
|
|
+
|
|
|
|
|
+ // 如果已经存在,则销毁旧的
|
|
|
|
|
+ if (is_struct(_current) && _current != global.handle_dummy) {
|
|
|
|
|
+ _current.destroy();
|
|
|
|
|
+ }
|
|
|
var _new_handle = new input_handle(_reg_name, _priority);
|
|
var _new_handle = new input_handle(_reg_name, _priority);
|
|
|
variable_instance_set(id, _func_name, _new_handle);
|
|
variable_instance_set(id, _func_name, _new_handle);
|
|
|
}
|
|
}
|
|
@@ -158,8 +176,10 @@ function autoreg_handle(_func_name, _reg_name, _priority){
|
|
|
/// @param {String} _func_name handle变量名
|
|
/// @param {String} _func_name handle变量名
|
|
|
function autodel_handle(_func_name){
|
|
function autodel_handle(_func_name){
|
|
|
var _handle = variable_instance_get(id, _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);
|
|
|
|
|
|
|
+ if (is_struct(_handle) && _handle != global.handle_dummy) {
|
|
|
|
|
+ if (variable_struct_exists(_handle, "destroy")) {
|
|
|
|
|
+ _handle.destroy();
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+ variable_instance_set(id, _func_name, global.handle_dummy);
|
|
|
}
|
|
}
|