12. marts 2008 - 14:20Der er
4 kommentarer og 1 løsning
Erstat komma med punktum
Hej
Jeg laver en beregner i Flash på dansk. Da Flash jo ikke er så glad for at regne med kommatal (indtastes af brugerne) har jeg behov for at udskifte komma med punktum. Jeg har prøvet med dette men kan ikke rigtigt få det til at virke.
var str = _root.indtastTal; var str2 = str.replace(",", ".");
Hvorfra har du funktionen "replace"? Den er ikke blå, så funktionen findes altså ikke. Og lige præcis med denne her funktion er Flash lidt noget møj, for hvis man ikke ved hvordan man skal gøre det, kan det være et helvede at finde frem til i hjælpen. Flash har nemlig ikke denne her funktion. Det, du skal gøre, er at du laver din streng om til et array med split. Her er et eksempel:
var Str:String = "Hej med dig. Dette er en streng."; var Arr:Array = Str.split("e");
Nu vil Arr altså være Str, der er hugget over lige præcist på alle e'ernes pladser:
H,j m,d dig. D,tt, ,r ,n str, ng.
Alle kommaerne indikerer, at vi kan fange disse værdier således:
Arr[0] = "H" Arr[1] = "j m" Arr[2] = "d dig. D"
etc.
Nu har vi altså et array Arr - dette kan vi så smelte sammen, så alle "hullerne" (hvor der er komma) bliver erstattet af en bestemt tekst:
NyStr = Arr.join("E");
Og nu er NyStr faktisk identisk med Str, bortset at alle e'er er erstattet af E'er. Se selv:
var Str:String = "Hej med dig. Dette er en streng."; var Arr:Array = Str.split("e"); var NyStr:String = Arr.join("E"); trace(NyStr); // Output: HEj mEd dig. DEttE Er En strEng
Og du kan gøre det samme med din opgave:
var Str1:String = _root.indtastTal; var Str2:String = Str1.split(",").join(".");
Jamen det er jo lige præcis funktionen jeg har glemt. Det er noget jeg har kopieret fra en gammel opgave, så det er lige med at huske det hele. Men med disse to linier virker det. Men tak for hjælpen, du er velkommen til at sende et svar.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.