Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-10-2005, 12:44   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 9
Question Problem mit loadMovie und XML-Navigation

Hallo, bin mit Flash noch nicht sehr bewandert, habe bis jetzt nur php, msql und html benutzt und wollte jetzt eine Seite mit einer Flash-Navigation versehen.
Um die ganzen alten Photoalben (HTML) zumindest vorübergehend weiter verlinken zu können, wollte ich diese über eine xml-Navigation einbinden.
Habe dann ein echt gutes Beispiel gefunden, daß ich auch ohne weiteres für meine Zwecke nutzen könnte (funktioniert auch als standalone siehe http://www.stierehamburg.de/newflash...applet_old.swf) . Ich scheitere leider aber daran, diesen Movie per loadMovie in mein Design einzupassen.
Mittlerweile erscheint er zwar (hatte vergessen, in der Navigation statt _root. _root.spot. noch mit anzugeben (spot ist der Container, in dem die externe swf mit der xml-Navigation geladen werden soll)), leider fehlen aber alle Zeilenumsprünge und die Umlaute werden fehlerhaft dargestellt (siehe http://stierehamburg.de/newflash/pub...ght_photos.swf).
Der Quelltext für die Generierung der XML-Navigation lautet:

System.useCodePage = true;
//
/////////////////////////////////////////////////////////////////////////
// XML DATEI LADEN, TEXTFELD ANLEGEN, NAVIGATION GENERIEREN
//HIer habe ich 7 Zeilen weiter unten in der loadMovie-Version das .root um //.spot erweitern müssen
fncLoadXML = function (file) {
XMLObj = new XML();
XMLObj.ignoreWhite = true;
XMLObj.load(file);
XMLObj.onLoad = function(success) {
if (success) {
_root.createTextField("txtNav", 1, 10, 10, 1, 1);
txtNav.autoSize = true;
txtNav.html = true;
txtNav.selectable = false;
txtNav.border = false;
//
fncGenNavTree(XMLObj, 0);
}
};
};
//
/////////////////////////////////////////////////////////////////////////
// HAUPTFUNKTION ZUR ERSTELLUNG DER NAVIGATION
fncGenNavTree = function (obj, selectedSub) {
txtNav.htmlText = "";
for (var i = 0; i<obj.firstChild.childNodes.length; i++) {
main = obj.firstChild.childNodes[i].attributes.btn;
actionMain = obj.firstChild.childNodes[i].attributes.fnc;
txtNav.htmlText += "<a href="+"'"+actionMain+"'><font face='Verdana' size='11' color='#444444'><b>"+main.toUpperCase()+"</b></font></a><br>";
//
if (i == selectedSub) {
for (var j = 0; j<obj.firstChild.childNodes[i].childNodes.length; j++) {
actionSub = obj.firstChild.childNodes[i].childNodes[j].attributes.fnc;
sub = obj.firstChild.childNodes[i].childNodes[j].attributes.label;
txtNav.htmlText += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="+"'"+actionSub+"'><font face='Verdana' size='10' color='#0088FF'><u>"+sub+"</u><br></font></a>";
if ((j>=obj.firstChild.childNodes[i].childNodes.length-1) && (i<obj.firstChild.childNodes.length-1)) {
txtNav.htmlText += "<font size='10'><br></font>";
}
}
}
}
};
//
/////////////////////////////////////////////////////////////////////////
// FUNKTIONEN WERDEN PER ASFUNCTION GESTARTET
// WECHSELN DER SUBNAVIGATION
fncChangeTree = function (mainNav) {
fncGenNavTree(XMLObj, mainNav);
};
// CONTENT ANZEIGEN
fncLoadContent = function (content) {
txtContent.text = content;
};
// LINKS IN Hauptframe ÖFFNEN
fncOpenPage = function (page) {
getURL("http://"+page, "_main");
};
//
/////////////////////////////////////////////////////////////////////////
//
fncInit = function () {
fncLoadXML("navigation.xml");
};
//
fncInit();

Weiß jemand Rat? Könnte mir vorstellen, daß es evtl was mit der XML-Einbindung zu tun hat, bin da aber leider überhaupt kein Experte...
Ach ja, die XML-File zur Ansicht liegt unter http://stierehamburg.de/newflash/pub/navigation.xml
thx in advance
hk

Geändert von koenighh (03-10-2005 um 12:46 Uhr)
koenighh ist offline   Mit Zitat antworten
Alt 03-10-2005, 12:49   #2 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
hi, damit man es lesen kann schreibe übernehme ich den code mal 1:1, aber in der code-ansicht
ActionScript:
  1. System.useCodePage = true;
  2. //
  3. /////////////////////////////////////////////////////////////////////////
  4. // XML DATEI LADEN, TEXTFELD ANLEGEN, NAVIGATION GENERIEREN
  5. //HIer habe ich 7 Zeilen weiter unten in der loadMovie-Version das .root um //.spot erweitern müssen
  6. fncLoadXML = function (file) {
  7. XMLObj = new XML();
  8. XMLObj.ignoreWhite = true;
  9. XMLObj.load(file);
  10. XMLObj.onLoad = function(success) {
  11. if (success) {
  12. _root.createTextField("txtNav", 1, 10, 10, 1, 1);
  13. txtNav.autoSize = true;
  14. txtNav.html = true;
  15. txtNav.selectable = false;
  16. txtNav.border = false;
  17. //
  18. fncGenNavTree(XMLObj, 0);
  19. }
  20. };
  21. };
  22. //
  23. /////////////////////////////////////////////////////////////////////////
  24. // HAUPTFUNKTION ZUR ERSTELLUNG DER NAVIGATION
  25. fncGenNavTree = function (obj, selectedSub) {
  26. txtNav.htmlText = "";
  27. for (var i = 0; i<obj.firstChild.childNodes.length; i++) {
  28. main = obj.firstChild.childNodes[i].attributes.btn;
  29. actionMain = obj.firstChild.childNodes[i].attributes.fnc;
  30. txtNav.htmlText += "<a href="+"'"+actionMain+"'><font face='Verdana' size='11' color='#444444'><b>"+main.toUpperCase()+"</b></font></a><br>";
  31. //
  32. if (i == selectedSub) {
  33. for (var j = 0; j<obj.firstChild.childNodes[i].childNodes.length; j++) {
  34. actionSub = obj.firstChild.childNodes[i].childNodes[j].attributes.fnc;
  35. sub = obj.firstChild.childNodes[i].childNodes[j].attributes.label;
  36. txtNav.htmlText += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="+"'"+actionSub+"'><font face='Verdana' size='10' color='#0088FF'><u>"+sub+"</u><br></font></a>";
  37. if ((j>=obj.firstChild.childNodes[i].childNodes.length-1) && (i<obj.firstChild.childNodes.length-1)) {
  38. txtNav.htmlText += "<font size='10'><br></font>";
  39. }
  40. }
  41. }
  42. }
  43. };
  44. //
  45. /////////////////////////////////////////////////////////////////////////
  46. // FUNKTIONEN WERDEN PER ASFUNCTION GESTARTET
  47. // WECHSELN DER SUBNAVIGATION
  48. fncChangeTree = function (mainNav) {
  49. fncGenNavTree(XMLObj, mainNav);
  50. };
  51. // CONTENT ANZEIGEN
  52. fncLoadContent = function (content) {
  53. txtContent.text = content;
  54. };
  55. // LINKS IN Hauptframe ÖFFNEN
  56. fncOpenPage = function (page) {
  57. getURL("http://"+page, "_main");
  58. };
  59. //
  60. /////////////////////////////////////////////////////////////////////////
  61. //
  62. fncInit = function () {
  63. fncLoadXML("navigation.xml");
  64. };
  65. //
  66. fncInit();
jetzt schau ichs mir weiter an

EDIT:
was ist denn genau das problem? es scheint doch alles zu funktionieren, bis auf die xml daten... hast du mal selber auf den link geklickt?? ich bekomme da
Zitat:
XML-Verarbeitungsfehler: nicht wohlgeformt
Adresse: http://stierehamburg.de/newflash/pub/navigation.xml
Zeile Nr. 29, Spalte 27: <daten label="www.web.de"fnc="asfunction:fncOpenPage,www. web.de"/>
--------------------------^
also mal die xml überarbeiten, bis sie wohlgeformt ist!

dann habe ich noch in deiner ladefunktion nen kleinen fehler gesehen. du musst den onLoad eventHandler natürlich vor dem load zuweisen...
ActionScript:
  1. fncLoadXML = function (file) {
  2.         XMLObj = new XML();
  3.         XMLObj.ignoreWhite = true;
  4.         XMLObj.onLoad = function(success) {
  5.                 if (success) {
  6.                         _root.createTextField("txtNav", 1, 10, 10, 1, 1);
  7.                         txtNav.autoSize = true;
  8.                         txtNav.html = true;
  9.                         txtNav.selectable = false;
  10.                         txtNav.border = false;
  11.                         //
  12.                         fncGenNavTree(XMLObj, 0);
  13.                 }
  14.         };
  15.         XMLObj.load(file);
  16. };

gruß janosch

Geändert von janoshnosh (03-10-2005 um 12:56 Uhr)
janoshnosh ist offline   Mit Zitat antworten
Alt 03-10-2005, 13:27   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 9
Zeilenumbrüche und Umlaute

Danke für die Tips schon einmal, Janosch, und sorry, falls mein Problem oben nicht duetlich geworden ist.
Habe jetzt mal die XML-File aufgeräumt, da meckert jetzt keiner mehr und den Tip mit dem Event-Handler habe ich auch beherzigt, das hat aber leider keine Änderung gebracht.
Wie vorhin auch werden in der Standalone-version des Scripts alle Rubriken und links untereinander und richtig dargestellt, sobald ich aber praktisch dasselbe skript in meinen Container lade, stellt er alles horizontal dar (ignoriert also die <br>-Anweisung) und ersetzt alle deutschen Sonderzeichen (umlaute etc) mit Hieroglyphen.
Hier nochmal die Links zu den 2 Versionen:
Die (nahezu) unbearbeitete Version liegt unter
http://www.stierehamburg.de/newflash...applet_old.swf
meine Version mit Einbindung ins Design findest du unter
http://stierehamburg.de/newflash/pub...ght_photos.swf
koenighh ist offline   Mit Zitat antworten
Alt 03-10-2005, 15:13   #4 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 9
sonst jemand einen Tip

Hat sonst jemand einen Tip, warum die Zeilenumbrüche und Umlaute ignoriert werden?
koenighh ist offline   Mit Zitat antworten
Alt 03-10-2005, 15:15   #5 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
also zeilenumbrüche vielleicht mal so:
ActionScript:
  1. txtNav.multiline = true;
?

gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 03-10-2005, 15:35   #6 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 9
eher im actionscript

cih denke eher, daß was in meinem actionscript nicht stimmt, die zeilenumbrüche stehen ja nicht in der XML-Datei, dort werden nur die Ober- und Unterkategorien deklariert (als nodes), welche dann in dem zitierten actionscript mittels HTML-Formatierungen aufbereitet werden. Ich vermute eher, daß eben diese HTML-Tags nicht richtig interpretiert werden, z.B. <br> (und dementsprechend auch die Umlaute), aber ich kann nicht sagen wieso...
habe auch schon versucht, über
ActionScript:
  1. System.useCodepage = true;
das ganze zu regeln, ohne jeglichen Effekt...
koenighh 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 04:32 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele