Html -Tags in dynamischem Textfeld (Flash MX)

eberhart

Grünschnabel
Hallo!
Habe so meine Probleme bei der Verwendung von Html-Tags in einem dynamischen Textfeld. Ich lade per loadVars meinen Text rein und bis auf "<br>" werden alle Tags einfach ignoriert. Bei "<b>" wird der Text gleich gar nicht mehr dargestellt.
An was kann's liegen?
 
Hallo,

erstens einmal erkennt Flash nur gewisse HTML-Tags. Eine Liste der akzeptierten Tags findest du in der Hilfe-Datei.
Du solltest auf HTML-Felder keine TextFormats anwenden, dann werden die Tags verworfen. Du solltest die Schrift des Text-Feldes auch nicht einbetten, weil Flash dann immer nur den eingebetteten Typ und dessen Atributte wie z.B. Farbe, Letter-Types (fett, kursiv usw.) verwendet und die Tags ebenfalls verwirft.

Gruss Lukas
 
...die Schrift habe ich schon eingebettet, ich will ja dass sie auf allen Systemen gleich ist. Ein fetter Schnitt ist jedoch auch vorhanden und der Bold-Tag ist sogar in der Flashhilfe als Beispiel angegeben. Sollte also funktionieren. Auch eine Verlinkung per <a> soll laut Flashilfe möglich sein...
Das TextFormat Objekt habe ich nicht benutzt.
Kann der Fehler in der Formatierung der Textdatei liegen?
(habe die .txt in BBEdit erstellt und als UTF-8 mit Unicode linebreaks gespeichert)
Oder hat hier Flash (Flash MX 6.0 auf OS X 10.3.4) an sich etwa irgendwelche Mängel?
 
Jaja, da hast du schon recht mit dem <bold>-Tag, aber da gibts nix zu rütteln: Der funktioniert nur, wenn der Text nicht eingebettet ist. Im Beispiel steht ja auch nicht, dass das auch mit Einbetten funktioniert. Die Tags <br>, <img> und <a> hingegen setzt Flash immer um, das sind ja keine Tags, die die Charakteren betreffen.
Mit Mac-Editoren kenn ich mich nicht aus, sollte aber eigentlich kein Problem sein, da txt ein universelles Format ist.

Anscheinend möchtest du also irgendeine abgefahrene Schrift verwenden, weil wegen einer Arial-Schrift würde ich nun wirklich nicht einbetten. Eingebettete Schriften sind einerseits schon bequemer, weil sie auch automatisch Umlaute usw. anzeigen können, die bei geladenen UNICODE-Dateien erst übersetzt werden müssen. Das ist zwar relativ aufwendig , macht die Sache aber viel dynamischer, sprich flexibler.

Für die Lösung deines Problems empfehle ich dir folgende Lösung. Trenn die Absätze deines Text-Files auch mit Variablen, z.B.

name=hans&datum=14.1.05&message=hallo usw.

Nun erstellst du für jeden Eintrag ein Textfeld, formatierst es dem Absatz entsprechend und lädtst dann die Variablen in die jeweiligen Felder.
 
Wie sieht denn dein Script aus?

Damit html-Tags erkannt werden, musst du folgendes machen:

PHP:
textfeld.html = true;
 textfeld.htmlText = "<b>Dein Text</b>";

p-flash
 
Danke, aber das ganze ist ein Textfeld für Newseinträge einer Website. Die Idee mit den verschiedenen Textfeldern ist da ein wenig unpraktisch. Weil man die News natürlich auch ohne Flash zu öffnen aktualisieren können sollte, wäre eine Textdatei, die in eine Textfeld geladen wird schon das Beste.
Warum kein <a>-Tag funktioniert ist mir echt ein Rätsel. Bei <br> klappt es auch. Und Html ist in den Textfeldeistellungen aktiviert...
Eigentlich sollte es ja keinen Unterschied machen ob ich das Textfeld scripte oder ob ich es auf der Bühne aufziehe, oder?
 
...per LoadVars, also so:
Code:
ladeNews = new LoadVars();
ladeNews.load("news/news.txt");
ladeNews.onLoad = function(loaded) {
	if (loaded) {
		newstext = this.news;
	}
};
die Variable "newstext" habe ich dann dem Textfeld zugewiesen.
 
Also:

Auch fettgedruckter Text (<b>) funktioniert, wenn die entsprechenden Zeichen eingebettet sind. Ich schreibe daher in ein Textfeld zunächst einen normalen und einen fettgedruckten Buchstaben, die ich beim Laden der Seite direkt wieder entferne. Alternativ kannst Du ganze Schchriftarten über Fontobjekte in der Bibliothek einbinden, aber das brauchst noch etwas mehr Speicherplatz... Ich hatte bisher noch wenig Probleme mit htmlText (verwende br, a, font, b und i Tags mit eingebetteten Schriften), solange die verwendeten Fonts gültig waren. Könntest Du die Datei (oder einen Dummy) einmal anhängen?

Gruß
.
 
Einem Textfeld sollte man (u.a. um Fehler zu vermeiden) keinen Variablen sondern einen Instanz namen verweisen.

Wenn du einem Textfeld über seinen instanznamen Text zuweisen möchtest schreibst du:

mein_txt.text = "Der Text";

wenn du willst das der Text html-Formate erkennt musst du schreiben:

mein_txt.htmlText = "Der Text";

In deinem Fall müsste es also so aussehen:

PHP:
  ladeNews = new LoadVars();
 ladeNews.load("news/news.txt");
 ladeNews.onLoad = function(loaded) {
 	if (loaded) {
 		newstext.html = true;		// Html aktivieren
 		newstext.htmlText = this.news; // html-text einfuegen
 	}
 };

Dazu musst du den Variablen Namen löschen und dem Textfeld den Instanznamen newstext geben.

Müsste dann eigentlich klappen.

p-flash
 

Neue Beiträge

Zurück