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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-03-2006, 12:13   #1 (permalink)
Web-Developer
 
Benutzerbild von Zeimn
 
Registriert seit: May 2003
Ort: Essen
Beiträge: 84
Es werden nur Hyperlinks formatiert :-((

Tach zusammen,
ich dreh langsam am Rad...
Ich lade ein Stylesheet, was so aussieht:
PHP-Code:
headline {
  
font-familyArial,Helvetica,sans-serif;
  
font-size16px;
  
font-weightbold;
  
displayblock;
}
subheadline {
  
font-familyArial,Helvetica,sans-serif;
  
font-size13px;
  
font-weightbold;
  
displayblock;
}
mainBody {
  
font-familyArial,Helvetica,sans-serif;
  
font-size10px;
  
displayblock;
}
biline {
  
font-familyArial,Helvetica,sans-serif;
  
font-size11px;
  
font-styleitalic;
  
displayinline;
}
a:link {
  
color#EEEEEE;
}
a:hover{
  
color#FFCC66;
  
text-decorationunderline;

Dieses will ich auf ein dynamisches Textfeld anwenden, dessen Inhalt aus ner XML-Datei kommt.

Das sieht so aus:

PHP-Code:
<![CDATA[<body>
<
headline>Randalierender Seelöwe</headline>
<
subheadline>Einwohner verblüfft und verängstigt</subheadline>
<
biline>Lokalnachrichten </biline><mainBody>Ein großer Seelöwe randalierte heute im Zentrum der Stadt und erschreckte Tausende von Menschen, die sich gerade in der Gegend befanden.<A HREF="http://www.macromedia.com">Klicken Sie hierum weitere Informationen anzuzeigen</A>. </mainBody>
</
body>]]> 
Der AS-Code sieht so aus:
PHP-Code:
        // Textfeld formatieren
        
content_txt._width xSize;
        
content_txt._height ySize;
        
content_txt.html true;
        
content_txt.htmlText mainContent;
        
content_txt.wordWrap true;
        
content_txt.condenseWhite true;
        
content_txt._visible false;
        
content_txt.setSelectColor(0xFF0000);
        var 
css_styles:TextField.StyleSheet = new TextField.StyleSheet();
        
css_styles.load("css/styles.css");
        
css_styles.onLoad = function(ok) {
          if(
ok) {
            
content_txt.styleSheet css_styles;
            
content_txt._visible true;
          } else {
            
content_txt.htmlText += "<font color='FFCC00'>Fehler beim Laden der CSS-Datei.</font>";
            
content_txt._visible true;
          }
        } 
Es werden in dem Textfeld NUR die Links formatiert,
die anderen Syles werden nicht angezeigt...

Sieht einer schon den Fehler??

Das ganze (ohne Preloader und so...)
kann man auch online sehen unter:

http://www.zeimn.net/kunden/hazet/?lang=de

(Dauert ein wenig, der Server ist nicht der schnellste....)
__________________
www.simon-koehler.com
Zeimn ist offline   Mit Zitat antworten
Alt 22-03-2006, 12:24   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Is kein HTML/CSS-Thema sondern Flash + XML, deshalb dahin verschoben.

Außerdem: meines Wissens nach kannst du nicht einfach XML-Nodes per CSS formatieren, dafür wird XSLT benötigt, wenn ich mich nicht irre.
Oder du verwendest Standard-HTML-Tags mit Klassen-/ID-Definitionen innerhalb deines XMLs und formatierst die per CSS... bin ich aber kein Spezialist für...
sonar ist offline   Mit Zitat antworten
Alt 23-03-2006, 01:28   #3 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Hi Zeimn,

Die wichtigsten info's zu flash & css:

1. Wenn Du deinem Textfeld mehrere Styles zuweisen möchtest, funktioniert das, indem du bei der setTextFormat methode eine start & eine endposition angibst. Start/Endposition bezieht sich auf die länge des zu formatierenden textes
2. Es werden nur ganz bestimmte css-eigenschaften unterstützt, welche das sind, siehst du hier: Unterstützte.CSS-Eigenschaften (LiveDoc's), aber das weist ja bereits.
3. Und hier scheint MM damals mitgedacht zuhaben, kannst du die parsing-fähigkeiten erweitern, die metode nennt sich transform.

guck ...

css
HTML-Code:
headline {
  font-family: Arial,Helvetica,sans-serif;
  font-size: 16px;
  font-weight: bold;
  display: block;
}

subheadline {
  font-family: Arial,Helvetica,sans-serif;
  font-size: 13px;
  font-weight: bold;
  display: block;
}

mainBody {
  font-family: Arial,Helvetica,sans-serif;
  font-size: 10px;
  display: block;
}

biline {
  font-family: Arial,Helvetica,sans-serif;
  font-size: 11px;
  font-style: italic;
  display: inline;
}

a:link {
  color: #EEEEEE;
}

a:hover{
  color: #FFCC66;
  text-decoration: underline;
}
xml
HTML-Code:
<?xml version="1.0" encoding="utf-8"?>
<root>
<![CDATA[<body>
<headline>Randalierender Seelöwe</headline>
<subheadline>Einwohner verblüfft und verängstigt</subheadline>
<biline>Lokalnachrichten </biline><mainBody>Ein großer Seelöwe randalierte heute im Zentrum der Stadt und erschreckte Tausende von Menschen, die sich gerade in der Gegend befanden.<A HREF="http://www.macromedia.com">Klicken Sie hier, um weitere Informationen anzuzeigen</A>. </mainBody>
</body>
]]>  
</root>
actionscript
ActionScript:
  1. this.stop ();
  2. //  2.0 xml -----------------------------------------------------
  3. var content:XML = new XML ();
  4. content.ignoreWhite = true;
  5. content.onLoad = function (success:Boolean)
  6. {
  7.     if (success)
  8.     {
  9.         view.htmlText = this.firstChild.firstChild.nodeValue;
  10.         view.setTextFormat (0, 10, _level0.css._styles.headline);
  11.         view.setTextFormat (10, 20, _level0.css._styles.subheadline);
  12.         view.setTextFormat (20, 30, _level0.css._styles.mainBody);
  13.         view.setTextFormat (30, 40, _level0.css._styles.biline);
  14.         view.setTextFormat (40, 50, _level0.css._styles['a:link']);
  15.         view.setTextFormat (50, 60, _level0.css._styles['a:hover']);
  16.     }
  17. };
  18. //  1.0 css  -----------------------------------------------------
  19. var css:TextField.StyleSheet = new TextField.StyleSheet ();
  20. css.onLoad = function (success:Boolean)
  21. {
  22.     if (success)
  23.     {
  24.         trace (this.getStyleNames ());
  25.         content.load ('content.xml');
  26.     }
  27. };
  28. css.load ("styles.css");

lg,
shorty
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (23-03-2006 um 11:53 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 23-03-2006, 12:04   #4 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Ik hab mal noch n bischen bebastelt...

gleich vorweg, die klasse ist nur so flink dahin getippelt, und auf deine bedürfnisse zugeschnitten, kannst nun also fast wie mit html div/spawn tags arbeiten(CSS & XML bleiben gleich)

Um eine formatierung einzuleiten, schreibst du den namen des css styles einfach direkt mit öffnendem tag vor den zu formatierenden text, um sie zu beenden mit schließendem tag. Diese tags werden innerhalb der klasse ausgewertet, der css style auf den innerhalb der tags liegenden text angewendet, die tags entfernt, und schlussendlich dem textfeld ein html formatierter string übergeben.

Achte darauf, wie bei html code die richtigen css style namen zu verwenden, aka. wenn in deiner styles.css der style "headline" benannt wird, ist das pondon dazu <headline>dein nach headlin zu formatierender text</headline> u.s.w.

Html Zeilenumbrüch <br> brauchst du im CDATA bereich der xml nicht verwenden, diese werden automatisch von flash erkannt. Ist zwar etwas buggy, da flash hier immer ein doppelten setzt, läßt sich aber leicht durch split('\r\n').join('<br>') beheben

xml
HTML-Code:
<?xml version="1.0" encoding="utf-8"?>
<root>
<![CDATA[<headline>Randalierender Seelöwe</headline>
<subheadline>Einwohner verblüfft und verängstigt</subheadline>
<biline>Lokalnachrichten</biline>
<mainBody>Ein großer Seelöwe randalierte heute im Zentrum der Stadt und erschreckte Tausende von Menschen, die sich gerade in der Gegend befanden.<A HREF="http://www.macromedia.com">Klicken Sie hier, um weitere Informationen anzuzeigen</A>.</mainBody>
]]>  
</root>
class
ActionScript:
  1. import mx.utils.Delegate;
  2. import mx.events.EventDispatcher;
  3. import TextField.StyleSheet;
  4.  
  5. class com.shortybmc.CSS
  6. {
  7.    
  8.     public var css:StyleSheet;
  9.     public var addEventListener:Function;
  10.     public var removeEventListener:Function;
  11.     private var dispatchEvent:Function;
  12.    
  13.     function CSS ()
  14.     {
  15.         EventDispatcher.initialize (this);
  16.     }
  17.    
  18.     public function load (url:String) : Void
  19.     {
  20.         css = new StyleSheet ();
  21.         css.onLoad = Delegate.create (this, onLoad);
  22.         css.load (url);
  23.     }
  24.    
  25.     private function onLoad (success:Boolean) : Void
  26.     {
  27.         if (success)
  28.         {
  29.             dispatchEvent ({type:'loaded'});
  30.         }
  31.     }
  32.    
  33.     public function getStyleNames () : Array
  34.     {
  35.         return css.getStyleNames ();
  36.     }
  37.  
  38.     public function getStyle (id:String) : Object
  39.     {
  40.         return css['_styles'][id];
  41.     }
  42.    
  43.     public function set (target:TextField) : Void
  44.     {
  45.         var s:String = target.text;
  46.         for (var i in getStyleNames ())
  47.         {
  48.             var name:String = getStyleNames ()[i];
  49.             var oT:String = '<' + name + '>';
  50.             var eT:String = '</' + name + '>';
  51.             var from:Number = s.indexOf (oT);
  52.             var to:Number = s.indexOf (eT) + eT.length;
  53.             target.setTextFormat (from, to, getStyle (name));
  54.             s = s.split ('&lt;' + name + '&gt;').join ('');
  55.             s = s.split ('&lt;/' + name + '&gt;').join ('');
  56.         }
  57.         s = target.htmlText;
  58.         s = s.split ('&lt;/').join ('</');
  59.         s = s.split ('&lt;').join ('<');
  60.         s = s.split ('&gt;').join ('>');
  61.         s = s.split ('&quot;').join ('"');
  62.         target.htmlText = s;
  63.     }
  64. }
timeline
ActionScript:
  1. import com.shortybmc.CSS;
  2.  
  3. //  2.0 xml -----------------------------------------------------
  4. var content:XML = new XML ();
  5. content.ignoreWhite = true;
  6. content.onLoad = function (success:Boolean)
  7. {
  8.     if (success)
  9.     {
  10.         view.text = this.firstChild.firstChild.nodeValue;
  11.         format.set (view);
  12.     }
  13. };
  14.  
  15. //  1.0 css  -----------------------------------------------------
  16. var format:CSS = new CSS ();
  17. var loaded:Function = function ()
  18. {
  19.     content.load ('content.xml');
  20. };
  21. format.addEventListener ('loaded', loaded);
  22. format.load ("styles.css");

sport frei,
shorty

{edit} werde die klasse morgen nochmal überarbeiten, um soviel wie möglich nähe zu html quelltext herzustellen (spawn/div tags, styles mit dot davor, u.s.w.)
Angehängte Dateien
Dateityp: zip CSS multiformated Textfield.zip (7,9 KB, 29x aufgerufen)
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (23-03-2006 um 12:29 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 23-03-2006, 17:44   #5 (permalink)
Web-Developer
 
Benutzerbild von Zeimn
 
Registriert seit: May 2003
Ort: Essen
Beiträge: 84
Jungeee du bist cool!

Hey Shorty,

was machst du denn sonst so?
Ich meine jetzt haste dir echt voll die Arbeit gemacht...
... erstmal ein fettes THANX!!

Hab den Arsch voll Arbeit momentan, deswegen bastel ich erst die nächsten Tage weiter, aber ich denke das klappt jetzt schon...!

Wenn ich mal was für dich tun kann, sach bescheid,
mach hauptsächlich Design, Programmierung, 3D-Design, Webhosting...

Gruß, Zeimn
__________________
www.simon-koehler.com
Zeimn ist offline   Mit Zitat antworten
Alt 23-03-2006, 18:55   #6 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
War mir wie immer eine freude Zeimn !
was ich sonst so mache: ähmmmm, nichts was mit computern zutun hat, wenn du mein job meinst
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (24-03-2006 um 08:29 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 19-01-2012, 15:22   #7 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Ort: hamburg
Beiträge: 8
coole sache

Die Klasse oder Benutzeroberfläche 'com.shortybmc.CSS' konnte nicht geladen werden ...

ne idee, warum?
iaka ist offline   Mit Zitat antworten
Alt 19-01-2012, 15:56   #8 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
Willkommen im Forum!
Zitat:
Zitat von iaka Beitrag anzeigen
Die Klasse oder Benutzeroberfläche 'com.shortybmc.CSS' konnte nicht geladen werden ...

ne idee, warum?
Welche ActionScript-Version verwendest Du? 3?
Das Script oben ist (wie der ganze Thread) schon etwas ältern und noch in AS2 geschrieben...
__________________
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 gerade online   Mit Zitat antworten
Alt 19-01-2012, 16:05   #9 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Ort: hamburg
Beiträge: 8
habe einfach die datei aus dem zip getestet... die steht auf fp7 und as2 ...
iaka ist offline   Mit Zitat antworten
Alt 19-01-2012, 16:11   #10 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
Zitat:
Zitat von iaka Beitrag anzeigen
habe einfach die datei aus dem zip getestet... die steht auf fp7 und as2 ...
Dann liegt es wahrscheinlich daran, dass Du die FLA direkt aus dem ZIP-Archiv heraus geöffnet hast und sie deshalb die nötigen externen Dateien nicht findet. Du solltest vorher das gesamte Archiv in einen Ordner entpacken und die FLA dann dort öffnen.
__________________
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 gerade online   Mit Zitat antworten
Alt 19-01-2012, 16:12   #11 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Ort: hamburg
Beiträge: 8
das habe ich getan (öffne im grunde nie direkt aus einer zip-datei) ...
iaka ist offline   Mit Zitat antworten
Alt 19-01-2012, 16:41   #12 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
Ich hab gerade selbst mal in die ZIP-Datei geschaut und gesehen, dass die AS-Datei dort nicht in einem Ordner liegt, obwohl ein Paket angegeben wurde. Die AS-Datei gehört (relativ zur FLA) in folgendes Verzeichnis:
Code:
com/shortybmc/CSS.as
__________________
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 gerade online   Mit Zitat antworten
Alt 19-01-2012, 17:24   #13 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Ort: hamburg
Beiträge: 8
hey cool - klappt - danke...

und auch danke fürs "willkommen" ;-)
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



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

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


Copyright ©1999 – 2012 Marc Thiele