actionscript 3 - Multiple dynamic text score display. Modifying each text one after another and incrementing the score by a certain number -


i have result screen shows bonus points , such. want each text field increment 1 after , have increment amount each frame.

result screen pops up.

first player score check player score, more score want display

if player score greater player display score 100 increase player display score 100

if player score greater player display score 10 increase player display score 10

else increase player display score 1

when finished move next score...and on.

i have thought of using timers move 1 score next, not being in event.enter_frame 1 if moves next one. if statement incrementing score looks ridiculous , i'm thinking there has better way it. thinking of making separate function wouldn't know return, or how return looks increasing , not showing total number instantly.

if have questions please leave comment. i'll try expand on little more.

you make new scoretext class inherits textfield, , use each of score text fields. on class make settargetscore method takes score number, , handles incrementation of display number. dispatch event when finished. listen events, , call settargetscore method on each scoretext need to.

another way, possibly better/easier, use tweenlite tween score number, , use events update score textfield, , when complete, move next one.

edit*

here example of using tweenlite tween score variable: how tween variable flash , tweenlite

edit2*

here example of first method:

first here scoretext class:

package {     import flash.events.event;     import flash.text.textfield;      public class scoretext extends textfield {         public static const event_score_complete:string = 'scorecompleteevent';          private var targetscore:number = 0;         private var currentscore:number = 0;         private const speed:number = 0.11;          public function scoretext(initialscore:number = 0) {             currentscore = initialscore;             updatescore();         }          public function settargetscore(targetscore:number):void {             this.targetscore = targetscore;             addeventlistener(event.enter_frame, enterframehandler);         }          private function enterframehandler(e:event):void {             currentscore += (targetscore - currentscore) * speed;              if (currentscore >= targetscore -1) {                 removeeventlistener(event.enter_frame, enterframehandler);                 dispatchevent(new event(event_score_complete));             }              updatescore();         }          private function updatescore():void {             this.text = math.round(currentscore).tostring();         }     } } 

and here main class:

package  {     import flash.display.sprite;     import flash.events.event;     import flash.text.textfield;      public class main extends sprite      {         private var st1:scoretext;         private var st2:scoretext;         private var st3:scoretext;          public function main():void          {             if (stage) init();             else addeventlistener(event.added_to_stage, init);         }          private function init(e:event = null):void          {             removeeventlistener(event.added_to_stage, init);              st1 = new scoretext(0);             st1.y = 10;             st1.addeventlistener(scoretext.event_score_complete, score1complete);             addchild(st1);              st2 = new scoretext(0);             st2.y = 60;             st2.addeventlistener(scoretext.event_score_complete, score2complete);             addchild(st2);              st3 = new scoretext(0);             st3.y = 110;             st3.addeventlistener(scoretext.event_score_complete, score3complete);             addchild(st3);              st1.settargetscore(1234);         }          private function score1complete(e:event):void          {             trace('score 1 finishes, start next one!');             st2.settargetscore(234553);         }          private function score2complete(e:event):void          {             trace('score 2 finishes, start next one!');             st3.settargetscore(745);         }          private function score3complete(e:event):void          {             trace('score 3 finishes, start next one!');         }     } } 

Comments

Popular posts from this blog

linux - Mailx and Gmail nss config dir -

c# - Is it possible to remove an existing registration from Autofac container builder? -

php - Mysql PK and FK char(36) vs int(10) -