I created this a while ago but the project got canceled. Since then I did an overhaul of the system. Apart from two workarounds for dynamically setting values in latent kismet sequences it is pretty solid and should be easy to use and build upon. A Readme.txt on how to use it is included in the zip file. (I also mapped the A,B,X,Y Controller keys to Q,W,E,R for testing)
The first simple button press QTE looks like this:
The QTE is nested inside a subsequence. Once activated it first checks whether other QTEs are active by comparing the named QT Active bool variable. In case no other QTE is currently running this variable is set to false. Then the remote vent Lock QTEs is called to set the boolean variable to true and enter cinematic mode, which prevents the player from controlling his pawn. Next the gates after the input events are opened to allow the events to be registered by the QTE Sequence. Additionally GFx Invoke ActionScript is used to tell the QTE Flash Player to display a simple button.
At last the QTE is activated by sending an impulse to the start input of the sequence. The QTE will now run as long as is specified by Duration (default: 2 seconds) and listen for impulses on the Right Key and Wrong Key inputs. A correct button press increases an internal value that triggers the Success output and quits the QTE. Likewise a wrong key press results in Failure.
Success and Failure also activate the Finished output. Stopping the QTE activates the Aborted output. While a real QTE would change what is going on in the game this one just plays a flash response for the player and resets the boolean lock after it is finished.