You might not be able to "disable paste" as such (without hosting the Flash control somehow yourself, say, in a Windows app, or in a browser extension of some sort), but you can certainly make a pretty good guess about the way someone s using the app with a little timer-based math. Here s a (super-)rough example of a Flex app illustrating what I mean:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*" creationComplete="this_creationComplete(event)">
<mx:Script>
<![CDATA[
private var timer:Timer;
import flash.events.Event;
private function this_creationComplete(event:Event):void
{
timer = new Timer(1000);
timer.addEventListener(TimerEvent.TIMER, timer_tick);
timer.start();
}
private function timer_tick(event:TimerEvent):void
{
var elapsedTimeInMinutes:Number = timer.currentCount / 60;
var averageWordLength:Number = 4;
var humanlyPossible:Number = 200;
var thisPersonsSpeed:Number = (txtTest.text.length / averageWordLength) / elapsedTimeInMinutes;
if (thisPersonsSpeed > humanlyPossible)
{
txtSpeed.text = "Wait, " + Math.floor(thisPersonsSpeed).toString() + " words per minute? This clown is probably cheating.";
txtTest.enabled = false;
timer.stop();
}
else
{
txtSpeed.text = "Currently typing " + Math.floor(thisPersonsSpeed).toString() + " wpm. Hurry up! Faster!";
}
}
]]>
</mx:Script>
<mx:VBox>
<mx:TextArea id="txtTest" width="600" height="300" />
<mx:Text id="txtSpeed" />
</mx:VBox>
</mx:Application>
Essentially, it s just a timer that calculates words per minute; if that number exceeds a certain threshold, the timer stops, and the form disables.
Sure, it s not iron-clad, and if I were implementing it myself, I d layer in some additional timing-oriented safeguards (e.g., stopping the timer after periods of inactivity, etc.), but it should illustrate the point. I m sure there are other solutions, but something simple like this may work out well-enough for you.
Update: A couple of folks have mentioned Event.PASTE, which would work, but doesn t exist in ActionScript 2 / Flash Player 9. Provided you were able to ensure Flash Player 10 and could script in ActionScript 3, that d be another option.