Zurück   Flashforum > Flash und Server > Flash mit XML und Webservices

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-12-2005, 13:12   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Beiträge: 334
html aus xml in flash anzeigen

Hallo
möchte meinen html formatierten text aus einer xml datei lesen und in der flash - textArea Componente anzeigen.

Wie macht man das?

Xml auslesen etc. ist kein Problem nur wird im moment einfach ein "<b>bold</b>" nicht fett dargestellt?

muss ich im XML mit CDDATA arbeiten???
HTML-Code:
- <content>
- <![CDATA[ Vor Body<body>Im Bory</body>Noch etwas Text nach Body
  ]]> 
  </content>
nen beispiel wäre supi

danke

Geändert von mukraker (23-12-2005 um 13:15 Uhr)
mukraker ist offline   Mit Zitat antworten
Alt 23-12-2005, 13:43   #2 (permalink)
Neuer User
 
Benutzerbild von Utopian
 
Registriert seit: May 2003
Beiträge: 1.031
Hi!

Ich gehe davon aus das du die Daten aus dem XML zunächst in ein
Array schreibst. Vermutlich könnte es mit einer einfach toString
Konvertierung bereits getan sein. Beachte auch das Felder die aus
dem XML kommen auch vom Typ XML sind.

textArea erwartet glaube ich einen String!?

Zur Not poste mal deinen Code mit XML hier.

Grüsse Christian
Utopian ist offline   Mit Zitat antworten
Alt 23-12-2005, 13:58   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Beiträge: 334
wenn ich mit String() die obige XML Line ausgebe erhalte ich in der TextArea Componente: Eigentlich sollte body geparst werden

HTML-Code:
Vor Body<body>Im Bory</body>Noch etwas Text nach Body
mukraker ist offline   Mit Zitat antworten
Alt 23-12-2005, 14:15   #4 (permalink)
Neuer User
 
Benutzerbild von Utopian
 
Registriert seit: May 2003
Beiträge: 1.031
Hi!

Das dürfte eigentlich kein Problem sein: Einfach HTML auf "true" stellen
und einen String inkl. HTML Code an die Componente übergeben.

Grüsse Christian
Utopian ist offline   Mit Zitat antworten
Alt 23-12-2005, 14:19   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Beiträge: 334
genau das mache ich ja auch, aber leider wird da kein html geparst

PHP-Code:
        var inhalt:String presentation.getContent("text");
        
contentTextArea.text inhalt
auf der componente liegt dann noch
PHP-Code:
on (load) {
    
this.setStyle("embedFonts"true);
    
this.html true;
    
// create the new StyleSheet object
    
var creditstylesSS = new TextField.StyleSheet();
    
// define styles for <body>
    
creditstylesSS.setStyle("body", {fontFamily:'FiomeNormal'fontSize:'12px'textAlign:'left'color:'#ff0000'});
    
// set the TextAreaInstance.styleSheet property to the newly defined
    // styleSheet object named styles
    
this.styleSheet creditstylesSS;


Geändert von mukraker (23-12-2005 um 14:35 Uhr)
mukraker ist offline   Mit Zitat antworten
Alt 23-12-2005, 14:45   #6 (permalink)
Neuer User
 
Benutzerbild von Utopian
 
Registriert seit: May 2003
Beiträge: 1.031
Hi!

"String" ist nicht automatisch "String" ;-)
Versuche mal das was geparst werden soll vorher mit toString()
zu konvertieren.

Grüsse Christian
Utopian ist offline   Mit Zitat antworten
Alt 23-12-2005, 15:00   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Beiträge: 334
toString() <-- die funktion gibts doch gar nicht.
String() muss es lauten oder? und so ist es schon in der Klasse drinne!
PHP-Code:
slideData["slide"+slideCounter].contentText toString(node.firstChild.nextSibling.firstChild); 
Ich habe euch die Files mal hochgeladen
DL unter:
http://data.insnet.de/flash.zip

Geändert von mukraker (23-12-2005 um 15:10 Uhr)
mukraker ist offline   Mit Zitat antworten
Alt 23-12-2005, 18:53   #8 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Lightbulb

hey jungs, kurzer hinweis:

a) toString() gibts

b) Daten aus einer XML kommen in Flash immer als String an

c) es sind nur ganz bestimmte html tags in flash erlaubt, bzw. werden als solche erkannt. hier ein kleiner überblick von dem was machbar wäre:
  • <a> mit href, target
  • <b>
  • <br>
  • <font> mit color, face, size
  • <img> mit src, id, width, height, align, hspace, vspace
  • <i>
  • <li>
  • <p> mit align, class
  • <span>
  • <textformat> mit blockindent, indent, leading, leftmargin, rightmargin, tabstops
eine wirklich gute übersicht findet ihr in der MM hilfe unter dem suchwort: Unterstützte HTML-Tags

Weil fast weihnachten ist, hier ein bsp:

xml
HTML-Code:
<?xml version="1.0" encoding="UTF-8"?>
<root>
   <content><![CDATA[Daten aus einer XML kommen in Flash immer als String an
   außerdem sind nur ganz bestimmte html tags in flash erlaubt, bzw. werden
   als solche erkannt.

   hier ein kleiner überblick von dem was machbar wäre:
   <li> <a> mit href, target</li>
   <li> <b></li>
   <li> <br></li>
   <li> <font> mit color, face, size</li>
   <li> <img> mit src, id, width, height, align, hspace, vspace</li>
   <li> <i></li>
   <li> <li></li>
   <li> <p> mit align, class</li>
   <li> <span></li>
   <li> <textformat> mit blockindent, indent, leading, leftmargin, rightmargin, tabstops</li>
   eine wirklich gute übersicht findet ihr in der MM hilfe unter dem suchwort: Unterstützte HTML-Tags
   ]]> 
   </content>
</root>
flash
PHP-Code:
this.stop();
//  # falls du mal entitys entfernen / ersetzen mußt
function removeEntitys(s:String):String {
    var 
a:Array = new Array();
    
a[0] = ['&quot;''"'];
    
a[1] = ['&apos;''\''];
    
a[2] = ['&gt;''>'];
    
a[3] = ['&lt;''<'];
    
a[4] = ['&amp;''&'];
    for (var 
i in a) {
        
s.split(a[i][0]).join(a[i][1]);
    }
    return 
s;
}
//  # xml
function load(source:String):Void {
    var 
x:XML = new XML();
    
x.ignoreWhite true;
    
x.onLoad = function(ok) {
        if (
ok) {
            
// wichtig, achte darauf, dass du CDATA mit nodeValue ausliest ! ;)
            
var content:String this.firstChild.childNodes[0].firstChild.nodeValue;
            
trace(content);
            
uiTextArea.text content;
        }
    };
    
x.load(source);
}
//  # and action ...
load('allowedHtmlTagsInFlash.xml'); 
wie du im anhang siehst, werden die unterstützten tags in der textField komponente erkannt, voraussetzung ist selbstredend, dass der parameter value von html auf true steht...

viel spass,
shorty

{btw} bitte das nächste mal in den richtigen bereich posten
Angehängte Dateien
Dateityp: zip allowedHtmlTagsInFlash.zip (41,0 KB, 152x aufgerufen)
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (23-12-2005 um 21:00 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 24-12-2005, 10:33   #9 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Beiträge: 334
danke für das super beispiel. doch wie kann ich jetzt noch css auf den content zuweisen?


p wird jetzt zwar richtig formatiert, aber bold ist da leider nichts, schriften sind aber eingebunden!

PHP-Code:
on (load) {
    
this.setStyle("embedFonts"true);
    
//this.html = true;
    // create the new StyleSheet object
    
var creditstylesSS = new TextField.StyleSheet();
    
// define styles for <body>
    
creditstylesSS.setStyle("b", {fontFamily:'FiomeMedium'fontSize:'12px'textAlign:'left'color:'#ff0000'});
    
creditstylesSS.setStyle("p", {fontFamily:'FiomeNormal'fontSize:'12px'textAlign:'left'color:'#ff0000'});
    
// set the TextAreaInstance.styleSheet property to the newly defined
    // styleSheet object named styles
    
this.styleSheet creditstylesSS;

Code:
<content><![CDATA[<p>Daten aus einer XML kommen in Flash immer als String an
   außerdem sind nur ganz bestimmte html tags in flash erlaubt, bzw. werden
   als solche erkannt.<b>Es kann sogar Fetter Text auftreten</b>
   </p>
   ]]> </content>

------------------

komisch ist, das sowas hier funzt
PHP-Code:
creditstylesSS.setStyle(".bold", {fontFamily:'FiomeMedium'fontSize:'12px'textAlign:'left'color:'#ff0000'}) 
Code:
<content><![CDATA[<p>Daten aus einer XML kommen in Flash immer als String an
   außerdem sind nur ganz bestimmte html tags in flash erlaubt, bzw. werden
   als solche erkannt.<span class="bold">Es kann sogar Fetter Text auftreten</span>
   </p>
   ]]> </content>

Geändert von mukraker (24-12-2005 um 10:43 Uhr)
mukraker ist offline   Mit Zitat antworten
Alt 24-12-2005, 11:47   #10 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
verschoben, kein oop
michael ist offline   Mit Zitat antworten
Alt 24-12-2005, 22:43   #11 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
danke micha

zum problem mit bold: du mußt dich entscheiden, entweder du bindest in deinem textfeld alles bold ein oder nicht. beides geht nicht, bzw. nur dann, wenn du keine schriften einbettest ..., oder auf gleichem level ein textfeld mit dem gleichen font in bold eingebettet hast.

{btw} zu css & flash kann ich dir nicht viel sagen, nur, dass ich es immer mit externen css dateien mache, und da lufts...
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (24-12-2005 um 22:46 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 25-12-2005, 12:56   #12 (permalink)
Zurückgekehrt
 
Registriert seit: Nov 2005
Ort: Berlin
Beiträge: 84
Klasse shorty!!! Danke hat mir geholfen eine Menge über XML und Flash zu raffen. Aber kannst du bitte zum vollständigen Verständnis das fla File dazu packen. Ich würd gern mit deinem Beispiel rumprobiern, ich denke dann hats bei mir da auch endlich knack gemacht.

PS: Blöde Frage: was hat das mit dem CDATA auf sich? Weiß das jemand?


Sorry aber manchmal hab ich echt große Lücken
Lieben Gruß und Lieben Dank
__________________
Grüße aus Berlin.
PS: Wenn ihr Problematiken zu Actionscript mit PHP habt, bitte involviert mich. Da interessiert mich alles.

Geändert von c8n8b1s (25-12-2005 um 12:58 Uhr)
c8n8b1s ist offline   Mit Zitat antworten
Alt 25-12-2005, 13:25   #13 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
CDATA bereiche werden vom XML parser übersprungen, bzw. alle darin enthaltenen Zeichen werden nicht interpretiert. Zum bleistift kannst du innerhalb eines CDATA bereichs folgendes, ohne probleme schreiben: <b>man bin ich fett</b>. Wohingegen diese schreibweise außerhalb eines CDATA bereichs zu problemen führt, da der XML parser die spitzen klammern (<; >) als element definition / einleitung erkennt (siehe auch post 8 im flashScript, function removeEntitys, dass sind z.B. die standardTags)

Kurzum: Wenn Du außerhalb von CDATA bereichen XML spezifische Zeichen verwenden möchtest, welche nicht geparst werden sollen, muß du diese per Entityreferenz deklarieren.


gruß,
shorty


{btw} *.fla kommt gleich als link, die passt hier nicht in den anhang, weil die bescheidenen komponente den rahmen von 50Kb Anhanggröße deutlich sprengen ...
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 25-12-2005, 13:36   #14 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Ok, hier zum selber fummeln mit fla & xml ...

Download: source (beim nächstem clean-up fliegt sie wieder runter, also schnell machen)

shorty

{edit} hier noch n bischen input zu entity's & CDATA (der thread ist leider etwas aus dem rahmen gelaufen, leider ...)
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (25-12-2005 um 13:49 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 25-12-2005, 18:02   #15 (permalink)
Zurückgekehrt
 
Registriert seit: Nov 2005
Ort: Berlin
Beiträge: 84
cool, danke für's fla shorty...

PS: alles klar, das mit CDATA ist nicht misszuverstehen, danke der erläuterung. Und Entites iss scho klar, wusst nur nix mit CDATA anzufangen, habsch ausgeblendet , ich komm von PHP, und so'ne kleine replacer function hatte ich in AS auch schon mal gebastelt. is ne feine Sache. Was meinst du, macht es nicht schon Sinn wenn es mehr String Funktionen in FLash gäbe, vielleicht in Flash 9? Dann wäre es eine ziemlich mächtige Sprache (maths sind ja schon hammer und xml enbinding find ich Klasse!) und völlig ungefährlich weil sie den Bereich des Players nicht verlassen kann, ein großer SicherheitsVorteil gegenüber Java...

egal, ich bin grad so in Gedanken....
frohe ostern nochmal und Lieben Gruß
__________________
Grüße aus Berlin.
PS: Wenn ihr Problematiken zu Actionscript mit PHP habt, bitte involviert mich. Da interessiert mich alles.

Geändert von c8n8b1s (25-12-2005 um 18:22 Uhr)
c8n8b1s 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele