我正在尝试在 Actionscript 3 中设置诸如面向方面的编程之类的东西,基本上我唯一需要做的就是这样:
SomeClass.getMethod("methodName").addEventListener(afterMethodExecuted, function() {
//run code
});
这样,我可以在任何类中的任何方法运行之后(或之前)运行代码,从而实现许多新的可能性。
我应该如何实现这个?
我正在尝试在 Actionscript 3 中设置诸如面向方面的编程之类的东西,基本上我唯一需要做的就是这样:
SomeClass.getMethod("methodName").addEventListener(afterMethodExecuted, function() {
//run code
});
这样,我可以在任何类中的任何方法运行之后(或之前)运行代码,从而实现许多新的可能性。
我应该如何实现这个?
您可以在方法上编写包装器。Flex 库的BindUtils类正是使用ChangeWatcher完成的。它通过包装一个属性来做到这一点,但在 ActionScript 中,方法只是一个属性。
我建议阅读这些方法的代码 ($FLEX_ROOT/sdks/4.0.0/frameworks/projects/framework/src/) 以了解如何做同样的事情。
您可能还对FunctionReturnWatcher感兴趣。