Avatar billede beorndesign Nybegynder
07. november 2003 - 14:03 Der er 3 kommentarer og
2 løsninger

ActionScript problem med setTextFormat

Jeg har et problem med linien markeret med "***". Koden ses her:

xDist = 26;
myTextFormat = new TextFormat();
myTextFormat.font = "verdana";
myTextFormat.size = "12";
for (i=1; i<=_root.strCount; i++) {
    if (eval("_root.sMenuVal"+i) == _root.strMenuVar) {
        createTextField("newText"+i, i+20, xDist, 0, 50, 17);
***    "newText"+i+".setTextFormat(myTextFormat)";    ***
        set("newText"+i+".selectable", "false");
        set("newText"+i+".textColor", "0xFFFFFF");
        set("newText"+i+".text", eval("_root.sMenuItem"+i));
        set("newText"+i+".autosize", "left");
        newDist = getProperty("newText"+i, _width);
        xDist = xDist+newDist+40;
    }
}

Jeg skal have lavet en række dynamiske textboxe fra en database, hvor texten skal formateres. Her er det at linien med setTextFormat giver mig problemer når jeg bruger "newText"+i. Det virker simpelthen ikke. Er der nogen der har et forslag?
Avatar billede barklund Nybegynder
07. november 2003 - 14:19 #1
Du bruger Flash MX (gætter jeg på) men skriver alligevel i Flash4-style :) Jeg opdaterer dig lige:

xDist = 26;
myTextFormat = new TextFormat();
myTextFormat.font = "verdana";
myTextFormat.size = "12";
for (i=1; i<=_root.strCount; i++) {
    if (_root["sMenuVal"+i] == _root.strMenuVar) {
        createTextField("newText"+i, i+20, xDist, 0, 50, 17);
        var this_txt = this["newText"+i];
        this_txt.setTextFormat(myTextFormat);
        this_txt.selectable = false;
        this_txt.textColor = 0xFFFFFF;
        this_txt.text = _root["sMenuItem"+i];
        this_txt.autosize = "left";
        newDist = this_txt._width;
        xDist = xDist+newDist+40;
    }
}

Så skulle det spille :)
Avatar billede beorndesign Nybegynder
10. november 2003 - 10:26 #2
Jo, jeg bruger Flash MX, men det virker nu ikke. Man kan da heller ikke blande variabler med objekter: var this_txt = this["newText"+i];?

Der er visse ting jeg godt kan lide ved den gammle style, som jeg nok får lidt svært ved at vende mig af med - nogle af dem gør koden lidt mere overskuelig. Først når funktionerne er under deprecated, dropper jeg dem!
Avatar billede barklund Nybegynder
10. november 2003 - 12:56 #3
Jo, det kan man i hvert fald :)

Kører den i en funktion eller i en frame?
Avatar billede beorndesign Nybegynder
10. november 2003 - 14:06 #4
Jeg har fået det til at virke, både med din og min egen kode. Problemet var, at linien 'eval("newText"+i).setTextFormat(myTextFormat);' skulle være til sidst. Mystisk, for da jeg erstattede linien med 'newText1.setTextFormat(myTextFormat);' virkede det jo tidligere??!

barklund: Smid et svar, og du vil få nogle point, som tak for hjælpen - selvom du ikke kom med en endelig løsning. Tak for hjælpen!

Du kan se det foreløbige resultat på:
http://www.autofin.dk/test
Avatar billede barklund Nybegynder
10. november 2003 - 14:10 #5
Nåja... når man sætter text efter textformat, er man nødt til at sætte newtextformat - eller sætte textformat til sidst... Men det kiggede jeg slet ikke på :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester