In realtà non serve assolutamente una classe dinamica. quello che vuoi fare (credo) è questo:

codice:
class Prova {
	private var __start:Number;
	private var __limit:Number;
	private var __interval:Number;
	public var onFinished:Function;

	function Prova (limit:Number) {
		__start = 0;
		__limit = limit;
		__interval = setInterval(this, '__process__', 100);
	}
	private function __process__ ():Void {
		__start++;
		if(__start >= __limit){
			endProcess()
			onFinished();
		}
	}
	private function endProcess (){
		if(__interval > 0){
			clearInterval(__interval);
		}
	}
}