import flash.text.TextField;import flash.display.Sprite;import flash.utils.Timer;import flash.events.TimerEvent;import fl.transitions.Tween;import fl.transitions.easing.Regular;import fl.transitions.TweenEvent;
stage.frameRate=60;//quick sortvar steps:Array;var tfs:Array;var s:Sprite=new Sprite();var last:Boolean;addChild(s);quick_sort([2,5,4,8,7,1,4]);function quick_sort(a:Array):void{while(s.numChildren>0){s.removeChildAt(0);}steps=[];tfs=[];last=false;for(var i=0;i<a.length;i++){var tf:TextField=new TextField();tf.text=a[i];tfs.push(tf);tf.x=(stage.stageWidth-100)*i/(a.length-1)+50;tf.y=(stage.stageHeight-tf.height)/2;s.addChild(tf);}_quick_sort(a,0,a.length-1);showSteps();}function _quick_sort(a:Array,from:int,to:int):void{if(from<to){var q:int=partition(a,from,to);_quick_sort(a,from,q-1);_quick_sort(a,q+1,to);}}function partition(a:Array,from:int,to:int):int{var j:int=from-1;var temp:int;for(var i=from;i<to;i++){if(a[i]<a[to]){j++;exchange(a,i,j);}}j++;exchange(a,i,j);return j;}function exchange(a:Array,i:int,j:int):void{trace(a,i,j);var temp:int=a[i];a[i]=a[j];a[j]=temp;if(i!=j)steps.push([i,j]);}function showSteps():void{trace(steps);var t:Timer=new Timer(1000,steps.length);t.addEventListener(TimerEvent.TIMER,time);t.addEventListener(TimerEvent.TIMER_COMPLETE,comp);t.start();}function time(e:TimerEvent):void{var i:int=steps[(e.target as Timer).currentCount-1][0];var j:int=steps[(e.target as Timer).currentCount-1][1];trace(i,j);showExchange(i,j);}function showExchange(i:int,j:int):void{var temp:TextField=tfs[i];tfs[i]=tfs[j];tfs[j]=temp;new Tween(tfs[i],"x",Regular.easeIn,tfs[i].x,tfs[j].x,0.8,true);var t:Tween=new Tween(tfs[j],"x",Regular.easeIn,tfs[j].x,tfs[i].x,0.8,true);t.addEventListener(TweenEvent.MOTION_FINISH,finish);}function finish(e:TweenEvent){if(last){e.target.removeEventListener(TimerEvent.TIMER_COMPLETE,comp);e.target.removeEventListener(TimerEvent.TIMER,time);var tf:TextField=new TextField();tf.text="排序完成!";tf.x=(stage.stageWidth-tf.width)/2;tf.y=stage.stageHeight/4;s.addChild(tf);}}function comp(e:TimerEvent){last=true;}
2012年06月30日 05点06分
5
我贴上去 运行了下。。他说有错误:1071: 语法错误: 在属性 quick (而不是 sortvar)之后需要一个定义关键字(如 function)。 这个是什么意思?
2012年07月01日 06点07分