Toon posts:

[flash] Onverwachte lege lijnen in dynamic textfield

Pagina: 1
Acties:

Verwijderd

Topicstarter
Het probleem:
In een dynamic textfield staat een text met twee paragrafen:
code:
1
2
3
paragraaf 1

paragraaf 2


nu wordt deze als volgt weergegeven
code:
1
2
3
4
paragraaf 1


paragraaf 2

Het probleem zit 'm natuurlijk in de carriage return interpretaties (namelijk \r voor mac, \n voor linux, en \r\n voor windows) waardoor flash twee carriage returns plaatst.

Waarom kan ik dit zelf niet oplossen?
De strings worden niet manueel via xml ingeladen maar via het multilanguage Strings panel. Hierdoor kan ik geen split string toepassen omdat ik geen controle heb over het inladen van de xml.

Wie kan mij hier op weg helpen?

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 18-01 18:46

XangadiX

trepanatie is zóó kinderachtig

how about een htmlTextfield en dan met <br> werken, trouwens, volgens mij verwerkt de flashplayer voor alle platformen \n als newline en moet dus \n\n overal werken, maar dat weet ik niet zeker

Stoer; Marduq


Verwijderd

volgens mij had ik hetzelfde, bekijk deze post eens:

[flash 8] textbox geeft extra witregels, deed ie niet in mx

Verwijderd

Topicstarter
ja maar je kan de text dus manueel niet parsen want dit gebeurd automatisch!

Verwijderd

Topicstarter
Ik heb de oplossing zelf gevonden. Wat je moet doen is de class mx.lang.Local aanpassen ( je kan hier moeilijk van overerven aangezien Macromedia alle methods static heeft gemaakt)
Zorg dat je de class zo aanpast zodat er eerst een instantie van moet worden gemaakt (anders kom je in de problemen met meerdere xml files!)

Pas de methode "parseSource" aan tot het volgende

code:
1
2
3
4
5
6
7
8
9
// return the string value of the source node
    private function parseSource(node:XMLNode):String {
        if(node.childNodes.length > 0) {
            trace("PARSE SOURCE" + node.childNodes[0].nodeValue.split("\r\n").join("\n"));
            return node.childNodes[0].nodeValue.split("\r\n").join("\n");
        }

        return "";
    }