从另一个 class 传递的回调
callbacks passed from another class
如何在 haxe 3 中获得由另一个 class 传递的回调 运行?
我正在尝试将回调函数传递给 class,但出现错误
public static var onFocusCallback:Dynamic;
public static function triggerFocus():Void
{
onFocusCallback.bind();
}
我得到的错误是
[Fault] exception, information=ReferenceError: Error #1069: Property bind not found on builtin.as[=12=].MethodClosure and there is no default value.
尽可能不要使用Dynamic
。它可以触发像那个那样的奇怪错误。
回调的使用方法是这样的http://try.haxe.org/#60f45
class Test {
static function main() {
onFocusCallback = function() {
trace("focus");
}
triggerFocus();
}
// Try not to use Dynamic
//public static var onFocusCallback:Dynamic;
// If you don't know the type of the function, you can use this:
//public static var onFocusCallback:haxe.Constraints.Function;
// But it's always better to give a concrete type like:
public static var onFocusCallback:Void->Void;
public static function triggerFocus():Void
{
if(onFocusCallback != null) onFocusCallback();
}
}
我开始工作的另一个解决方案是在发布问题后几分钟内使用 Reflect
Reflect.callMethod(null, onFocusCallback, []);
如何在 haxe 3 中获得由另一个 class 传递的回调 运行?
我正在尝试将回调函数传递给 class,但出现错误
public static var onFocusCallback:Dynamic;
public static function triggerFocus():Void
{
onFocusCallback.bind();
}
我得到的错误是
[Fault] exception, information=ReferenceError: Error #1069: Property bind not found on builtin.as[=12=].MethodClosure and there is no default value.
尽可能不要使用Dynamic
。它可以触发像那个那样的奇怪错误。
回调的使用方法是这样的http://try.haxe.org/#60f45
class Test {
static function main() {
onFocusCallback = function() {
trace("focus");
}
triggerFocus();
}
// Try not to use Dynamic
//public static var onFocusCallback:Dynamic;
// If you don't know the type of the function, you can use this:
//public static var onFocusCallback:haxe.Constraints.Function;
// But it's always better to give a concrete type like:
public static var onFocusCallback:Void->Void;
public static function triggerFocus():Void
{
if(onFocusCallback != null) onFocusCallback();
}
}
我开始工作的另一个解决方案是在发布问题后几分钟内使用 Reflect
Reflect.callMethod(null, onFocusCallback, []);