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

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -