Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-01-2012, 17:58   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Ort: hamburg
Beiträge: 8
xml daten inkl. html in textfeld schreiben (facebook rss)

schönen abend zusammen...


ich sitze seit 2 tagen an einem problem - ich versuche ein xml-dokument auszulesen, dass eigentlich ein RSS stream von facebook ist.
das funktioniert auch wunderbar, aber das textfeld zeigt mir keine html-tags an... hat jemand eine idee, woran das liegen könnte?

hier mein code:



Code:
doc = new XML ();
doc.toString;
doc.ignoreWhite = true;
doc.docTypeDecl = "<!DOCTYPE greeting SYSTEM \"hello.dtd\">";
doc.load ("http://www.facebook.com/feeds/page.php?id=140423055978956&format=rss20");

doc.onLoad = function (success:Boolean) {
	if (success) {

		var newString1:String = new String ();
		var newString2:String = new String ();
		var newString3:String = new String ();


		for (i = 1; i <= 3; i++) {

			_root["contentBox" + i].createTextField ("textfeld3",this.getNextHighestDepth (),0,45,230,70);
			_root["contentBox" + i].textfeld3.html = true;
			_root["contentBox" + i].textfeld3.autoSize = true;
			_root["contentBox" + i].textfeld3.wordWrap = true;
			_root["contentBox" + i].textfeld3.multiline = true;

			_root["newString" + i] = doc.firstChild.childNodes[0].childNodes[i + 8].childNodes[3].childNodes.toString ();

			_root["newString" + i] = _root["newString" + i].split ("&lt;").join ("<");
			_root["newString" + i] = _root["newString" + i].split ("&gt;").join (">");
			_root["newString" + i] = _root["newString" + i].split ("&quot;").join ("\"");
			_root["newString" + i] = _root["newString" + i].split ("&amp;").join ("'");
			_root["newString" + i] = _root["newString" + i].split ("/ >").join (">");
			_root["newString" + i] = _root["newString" + i].split ("/>").join (">");

			_root["contentBox" + i].textfeld1.text = doc.firstChild.childNodes[0].childNodes[i + 8].childNodes[1].childNodes;
			_root["contentBox" + i].textfeld2.text = doc.firstChild.childNodes[0].childNodes[i + 8].childNodes[5].childNodes + " | ";
			_root["contentBox" + i].textfeld2.text += doc.firstChild.childNodes[0].childNodes[i + 8].childNodes[4].childNodes + ":";

			_root["contentBox" + i].textfeld3.setTextFormat (format);

			_root["contentBox" + i].textfeld3.htmlText = _root["newString" + i];
			//_root["contentBox" + i].textfeld3.htmlText = "<a href='http://www.test.de'>LINK</a> und <b> BOLD </b> statt normal...";

		}

	} else {
		ausgabe.text = "fehler";
	}

};
wenn ich aber statt:

Code:
_root["contentBox" + i].textfeld3.htmlText = _root["newString" + i];
das hier schreibe:

[CODE]
_root["contentBox" + i].textfeld3.htmlText = "<a href='http://www.test.de'>LINK</a> und <b> BOLD </b> statt normal...";
[CODE]


dann gehts...

echt eigenartig...
iaka ist offline   Mit Zitat antworten
Alt 23-01-2012, 19:06   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Ich hab Dir Deinen Code mal etwas aufgeräumt und kommentiert (Schau's Dir mal an und versuch nachzuvollziehen, was ich da wie und warum geändert habe):
ActionScript:
  1. var doc:XML = new XML ();
  2. //doc.toString; // Hä??
  3. doc.ignoreWhite = true;
  4. doc.docTypeDecl = "<!DOCTYPE greeting SYSTEM \"hello.dtd\">";
  5.  
  6. doc.onLoad = function (success:Boolean) {
  7.     if (success){
  8.        
  9.         var contentBox:MovieClip;
  10.         var textfield:TextField;
  11.         var node:XMLNode;
  12.         var str:String;
  13.  
  14.         for (i = 1; i <= 3; i++) {
  15.            
  16.             node = doc.firstChild.firstChild.childNodes[i + 8];
  17.             contentBox = _root["contentBox" + i];
  18.            
  19.             textfield = contentBox.createTextField("textfeld3", contentBox.getNextHighestDepth(), 0, 45, 230, 70);
  20.             textfield.html = true;
  21.             textfield.autoSize = true;
  22.             textfield.wordWrap = true;
  23.             textfield.multiline = true;
  24.            
  25.             str = node.childNodes[3].childNodes.toString ();
  26.  
  27.             str = str.split("&lt;").join ("<");
  28.             str = str.split("&gt;").join (">");
  29.             str = str.split("&quot;").join ("\"");
  30.             str = str.split("&amp;").join ("'");
  31.             str = str.split("/>").join (">");
  32.             str = str.split("/>").join (">");
  33.            
  34.             // Wo werden diese Textfelder erzeugt?
  35.             contentBox.textfeld1.text = node.childNodes[1].childNodes;
  36.             contentBox.textfeld2.text = node.childNodes[5].childNodes + " | " + node.childNodes[4].childNodes + ":";
  37.  
  38.             // Was gibt Dir das hier aus?
  39.             trace("»" + str + "«");
  40.            
  41.             textfield.htmlText = str;
  42.            
  43.             // Wo wird Format wie definiert?
  44.             // Wenn es angewendet werden soll muss es nach der Textzuweisung stehen
  45.             textfield.setTextFormat(format);
  46.         }
  47.  
  48.     } else {
  49.         ausgabe.text = "fehler";
  50.     }
  51.  
  52. };
  53.  
  54. doc.load ("http://www.facebook.com/feeds/page.php?id=140423055978956&format=rss20");
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 24-01-2012, 11:12   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Ort: hamburg
Beiträge: 8
Hey Martin,

erst mal vielen Dank für deine Mühe - durch die ganze rumprobiererei ist mein code recht unaufgeräumt gewesen - da hast du recht...

// doc.toString; // Hä??

da hast du recht - macht keinen sinn ...

// Wo werden diese Textfelder erzeugt?

die habe ich gebaut und gar nicht per script erzeugt... mache ich später noch...

// Was gibt Dir das hier aus?

>> node-inhalt <<

aber wenn ich es mit

textfield.htmlText = "<![CDATA[" + str + "]]>";

versuche, wird gar nichts mehr im textfeld angezeigt...

:/

Geändert von iaka (24-01-2012 um 11:18 Uhr)
iaka ist offline   Mit Zitat antworten
Alt 24-01-2012, 11:24   #4 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von iaka Beitrag anzeigen
>> node-inhalt <<
Und wie sieht dieser Node-Inhalt aus?

Zitat:
Zitat von iaka Beitrag anzeigen
aber wenn ich es mit

textfield.htmlText = "<![CDATA[" + str + "]]>";

versuche, wird gar nichts mehr im textfeld angezeigt...
CDATA gehört ja auch nicht in ein HTML-Textfeld!
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 24-01-2012, 12:48   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Ort: hamburg
Beiträge: 8
z.b. so:

>>Haben für für diese Ikea Clips die Retuschen und die Postproduktion gemacht <br><br><a href="http://www.ikea.com/de/de/catalog/categories/departments/bedroom/" id="" title="" target="" onclick="" style="" onmousedown="UntrustedLink.bootstrap($(this), "CAQETCr1n", event, bagof({}));" rel="nofollow"><img class="img" src="http://external.ak.fbcdn.net/safe_image.php?d=AQAYsi9eBKNeRh9N'w=90'h=90'url=ht tp%3A%2F%2Fwww.ikea.com%2Fms%2Fimg%2Fads%2Fbanners _fy12_01%2Ftx_bedroom_12_01.jpg" alt="" ></a><br><a href="http://www.ikea.com/de/de/catalog/categories/departments/bedroom/" id="" target="_blank" style="" onmousedown="UntrustedLink.bootstrap($(this), "zAQEtpM80", event, bagof({}));" rel="nofollow">Schlafzimmer - Betten, Matratzen ' Schlafzimmermöbel - IKEA</a><br>www.ikea.com<br>Formschöne Schlafzimmermöbel zu niedrigen Preisen. Bei uns gibts alles von Betten über Bettgestelle zu Matratzen und Kleiderschränken – und vieles mehr.<<
iaka ist offline   Mit Zitat antworten
Alt 24-01-2012, 14:23   #6 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Wenn Du Dir das mal in einem Editor mit Syntaxhighlighting anschaust, siehst Du, dass da irgendwie die Anführungszeichen durcheinander kommen und es damit kein Valides HTML mehr ist. Was wahrscheinlich an Deinen split-Funktionen liegt...

Schau mal (-> Suchfunktion), ob Du nicht einen sauberen weg findest die Entities zu ersetzen.
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (24-01-2012 um 14:24 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 24-01-2012, 18:00   #7 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Ort: hamburg
Beiträge: 8
stimmt ... mir ist aufgefallen, dass da manchmal gar kein ' steht... hab aber dennoch keinen erfolg und jetzt eine halbe lösung, in der ich im string nach dem link und der bild-url suche:

PHP-Code:
var doc:XML = new XML ();// doc.toString; // Hä??
doc.ignoreWhite true;
doc.docTypeDecl "<!DOCTYPE greeting SYSTEM \"hello.dtd\">";

doc.onLoad = function (success:Boolean) {
    if (
success) {

        var 
contentBox:MovieClip;
        var 
textfield:TextField;
        var 
node:XMLNode;
        var 
str:String;
        var 
img_startindex:Number;
        var 
img_endindex:Number;
        var 
img_URL:String;
        var 
a_startindex:Number;
        var 
a_endindex:Number;
        var 
a_URL:String;

        for (
1<= 3i++) {

            
node doc.firstChild.firstChild.childNodes[8];
            
contentBox _root["contentBox" i];

            
textfield contentBox.createTextField ("textfeld3"contentBox.getNextHighestDepth (), 04523070);
            
textfield.html true;
            
textfield.autoSize true;
            
textfield.wordWrap true;
            
textfield.multiline true;

            
str node.childNodes[3].childNodes.toString ();
            
str str.split ("\"").join ("'");
            
str str.split ("\"\"").join ("'");
            
str str.split ("url=").join ("url='");
            
str str.split ("w=").join ("w='");
            
str str.split ("h=").join ("h='");
            
str str.split ("''").join ("'");

            
str str.split ("&lt;").join ("<");
            
str str.split ("&gt;").join (">");
            
str str.split ("&quot;").join ("\"");
            
str str.split ("&amp;").join ("'");
            
str str.split ("/ >").join (">");
            
str str.split ("/>").join (">");
            
str str.split ("%3A").join (":");
            
str str.split ("%2F").join ("/");


            
// bild-url suchen:
            
img_startindex str.indexOf ("url="0);
            
img_endindex str.indexOf (".jpg"img_startindex);
            
img_URL str.substring (img_startindex 5img_endindex 4);

            if (
img_startindex != -1) {
                
contentBox.createEmptyMovieClip ("bild",contentBox.getNextHighestDepth ());
                
contentBox.bild.loadMovie (img_URL);
                
contentBox.bild._y 80;
                
contentBox.onEnterFrame = function () {
                    if (
this.bild._width 0) {
                        
trace("betreten");
                        
this.bild._width 120;
                        
this.bild._yscale this.bild._xscale;
                        
delete this.onEnterFrame;
                    }
                };
                
            }
            
            
// link suchen:      
            
a_startindex str.indexOf ("<a href"0);
            
a_endindex str.indexOf ("id="a_startindex);
            
a_URL str.substring (a_startindex 9a_endindex 2);

            if (
a_startindex != -1) {
                
trace (a_URL);
                
contentBox.bild.onRelease = function () {
                    
getURL (a_URL"_blank");
                };
            }
    
            
contentBox.textfeld1.text node.childNodes[1].childNodes;
            
contentBox.textfeld2.text node.childNodes[5].childNodes " | " node.childNodes[4].childNodes ":";

            
textfield.htmlText str ;

        }

    }
};
doc.load ("http://www.facebook.com/feeds/page.php?id=140423055978956&format=rss20"); 
iaka ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Facebook: mittels php param flashvars schreiben Rookie_BS PHP und MySQL 4 17-08-2011 12:01
[Flash 8] per klick auf mc html code in in textfeld schreiben ciberjoerg Flash Einsteiger 2 21-04-2009 16:11
Dynamisches HTML-Textfeld inkl. Grafik, wie korrekte Höhe auslesen? Pixelex ActionScript 2 6 21-02-2007 11:28
String in HTML-Textfeld schreiben problematisch sharky06 Flash MX 2004 2 22-12-2006 10:14
DVD-Daten inkl. Kapitel usw. extrahieren derRaab Am Rande 2 02-11-2006 09:29


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:47 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele