Actionscript 3 Flash Keyboard Event -
i wonder 1 enlighten me on easier way of solving code.i new flash , actionscript.
i want have text box, user enters name. each time charachter pressed, , image of letter displayed below text box. example. user rights john. john displayed in nice images below.
i have got working, have create input box each character, left eg. 6 boxes each letter of name, accept character each. reason is, cannot place images after each other, keep overwriting position of 1st character typed, if 1 single textbox used.
i know going long way around this, there must alot easier.
here code, tedious if have go route. someon give me quick hinter on correct way go this.
thanks fintan
////////////////111111//////////////////// firstname.addeventlistener(keyboardevent.key_down, key_pressed); function key_pressed(event:keyboardevent):void { if (event.charcode == 65) { var fl_myinstance_2:librarysymbol = new librarysymbol(); fl_myinstance_2.x = 50 fl_myinstance_2.y = 200 addchild(fl_myinstance_2); } else if (event.charcode == 66) { var fl_myinstance_3:letterb = new letterb(); fl_myinstance_3.x = 50 fl_myinstance_3.y = 200 addchild(fl_myinstance_3); } else if (event.charcode == 67) { var fl_myinstance_4:letterc = new letterc(); fl_myinstance_4.x = 50 fl_myinstance_4.y = 200 addchild(fl_myinstance_4); } else if (event.charcode == 68) { var fl_myinstance_5:letterd = new letterd(); fl_myinstance_5.x = 50 fl_myinstance_5.y = 200 addchild(fl_myinstance_5); } else if (event.charcode == 69) { var fl_myinstance_6:letterd = new letterd(); fl_myinstance_6.x = 50 fl_myinstance_6.y = 200 addchild(fl_myinstance_6); }
i'll give code , hints try point right direction.
first of all, don't need 1 different class each alphabet letter - @ least 26 classes, or 52 if take account upper case/lower case, , it's totally unnecessary because each , serve 1 purpose - show 1 letter.
what instead make 1 movieclip 26 different frames (or 52 if upper/lower cases) labelled "a" "z" (or "a" "z"). in each of frames, put drawing of 1 letter, , 1 stop();
. link movieclip class - letter, or whatever.
then, when user writes on firstname textfield, have careful because he/she can hit other keys not letters - example, del key, arrow, etc might mess visual representation. think way make sure display right draw each time whole contents of textfield, this:
//key event firstname.addeventlistener(keyboardevent.key_up, key_pressed); //container (empty) movieclip var container_mc:movieclip = new movieclip(); addchild(container_mc); function key_pressed(e:keyboardevent):void { var offset:number=0; //clear container update visual representation while(container_mc.numchildren>0) container_mc.removechildat(0); var letterinstance:letter; //your linked class for(var i:uint=0;i<firstname.text.length;i++) { letterinstance = new letter(); //go frame corresponding letter @ position "i" //or use own system choose image each letter! letterinstance.gotoandstop(first_name.text.charat(i)); //postion: x (plus offset avoid overwritting), y letterinstance.x = 50 + offset; offset+= letterinstance.width; letterinstance.y = 200; //add letter container container_mc.addchild(letterinstance); } }
this code still has problems, names non-letter characters whitespaces, apostrophes, etc, think can start working here ;)
hope of help, luck!
Comments
Post a Comment