smileys :-) (har den næsten!)
Jeg har lavet et input textfield(inputfelt) og et dynamic textfield(tekstfelt). I det tekstfelt har jeg embed fonten arial. Derudover har jeg lagt en 'chatfont'(10 Lil´Ghosts) i mit library!Det der var min mening var at hver gang der blev indtastet et smileyansigt i inputfelt(':)', ':(' eller ':D'), så skulle smileyansigtet udskiftes med et bogstav i tekstfelt(a, b eller c) og disse bogstaver skulle så i tekstfelt formateres med setTextFormat til min 'chatfont'!
Det virker i det store hele, men desværre laver den af og til fejl (som jeg ikke kan se nogen sammehæng i forøvrigt) især ved linieskift og sådan!
/Alexander
Min kode med kommentarer:
//Tekstformat for chatfont
smiletekstformat = new TextFormat();
smiletekstformat.font = "myfont";//font lagt i mit library med linkage"myfont"
// smileys og deres bogstaver i fonten ':)' = 'a' osv.
smile=new Array([":)","a"],[":(","b"],[":D","c"])
// array der fortæller mig hvor i teksten mine smileybogstaver er placeret
smilepos=new Array();
// Når der skrives i inputfelt formateres tekstfelt
// smiley'erne udskiftes med deres bogstav(abc) og positionen gemmes 'smilepos'
inputfelt.onChanged = function(){
tekstfelt.text=inputfelt.text;
for (i=0; i<smile.length; i++){
if(tekstfelt.text.indexOf(smile[i][0])!=-1){
do {
pos=tekstfelt.text.indexOf(smile[i][0]);
smilepos.push(pos);
tekstfelt.text=tekstfelt.text.slice(0, pos)+smile[i][1]+tekstfelt.text.slice(pos+2,tekstfelt.text.length);
}while(tekstfelt.text.indexOf(smile[i][0])!=-1);
}
}
// udfra positonerne lagret 'smilepos' formateres et bogstav(abc) i tekstfelt
for (i=0; i<smilepos.length; i++) tekstfelt.setTextFormat(smilepos[i], smilepos[i]+1, smiletekstformat);
}
