I think the trigger/timer/aliases (or TTA's for short from here on forth) are better comparisons than the OnPlugin* callbacks, which are a different beast. After all, those are a simple matter of testing the script for a function and executing it, whereas the sendto.script method is a wholly other beast.
TTA's support everything scriptingwise. You can assign variables etc, it is not limited to a specific function.
Since you'd want AcceleratorTo(key, "keypressed = true", 12) to work as well for whatever reason (people will find one, trust me), it can't be a callFunction() kind of execution, but has to be a executeScript() kind of method to invoke the script.
Here's an example. Suppose you use the keypad for various affairs. Do you want to make seperate functions to handle each key? Eg... (assuming a script function callback):
AcceleratorTo("Numpad0", "KeyPressNumpadZero", 12);
AcceleratorTo("Numpad1", "KeyPressNumpadOne", 12);
AcceleratorTo("Numpad2", "KeyPressNumpadTwo", 12);
AcceleratorTo("Numpad3", "KeyPressNumpadThree", 12);
...
That would be troublesome. All you can do is call functions. Better would be, with it working as a script like right now:
AcceleratorTo("Numpad0", "KeyPress(0)", 12);
AcceleratorTo("Numpad1", "KeyPress(1)", 12);
AcceleratorTo("Numpad2", "KeyPress(2)", 12);
AcceleratorTo("Numpad3", "KeyPress(3)", 12);
...
That way you can re-use the same function.
To explain in another way... TTA's have 'send to script'. That executes code. TTA's also have a Script field. Which is like the callback you suggest. The latter is a lot more limited, and since Accelerators() aren't exactly full objects like TTA's are, you will want the flexibility. Right now, it is already implemented as a 'send to script', which is good, so that should definitely not change. Callbacks would simply end up as an inconsistency with the rest of similar functions.
|