| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Nov 2004
Beiträge: 2
| Externe JPGs mit XML laden - MacOSX Probleme
hi leude, hab ein kleines problem mit der gallery, die ich grade zusammengebaut habe. eigentlich funktioniert bei mir mit 3 Mbit DSL Leitung alles wunderbar, wenn ich langsame verbindungen, 64 und 128 kbit/s simuliere mit speedlimiter proxy kriege ich auch ganz gute ergebnisse. nur bei meinem kunden auf macOSX mit safari und IE auch ueber DSL gibt es riesen verzoegerungen und teilweise kaputte jpgs beim laden. ich kanns leider ueberhaupt nicht nachvollziehen was da passiert im moment da er sich auch noch in portugal aufhaelt. ich poste hier mal die 2 wesentlichen script teile die ich verwende. das findet im _root beim laden der seite statt: [script] MovieClip.prototype.setcolor = function($setColor) { this.$mc = new Color(this); this.$mc.setRGB($setColor); }; // txtFormat = new TextFormat(); txtFormat.bold = false; txtFormat.size = 8; txtFormat.font = "standard 07_54"; // txtFormat2 = new TextFormat(); txtFormat2.size = 16; txtFormat2.font = "standard 07_54"; // _root.thumbmovie.slider._visible = false; // function createmenu(menudata, overcolor, pushedcolor, abstand) { for (var i = 0; i<menudata.length; i++) { this.createEmptyMovieClip("btn"+i, i); this["btn"+i].createTextField("txt", 1, 13, 56, 10, 10); this["btn"+i].txt.text = menudata[i].firstChild.firstChild.nodeValue; this["btn"+i].txt.autoSize = true; this["btn"+i].txt.setTextFormat(txtFormat); this["btn"+i].txt.embedFonts = true; this["btn"+i].setcolor(menudata[i].childNodes[1].firstChild.nodeValue); this["btn"+i]._y = this["btn"+(i-1)]._y+this["btn"+(i-1)]._height+abstand; this["btn"+i].id = i; this["btn"+i].onRollOver = function() { this.setcolor(overcolor); }; this["btn"+i].onRollOut = function() { this.setcolor(menudata[this.id].childNodes[1].firstChild.nodeValue); }; if (menudata[i].childNodes[2].firstChild.nodeValue == "gallery") { this["btn"+i].onRelease = function() { for (var j = 0; j<menudata.length; j++) { this._parent["btn"+j].setcolor(menudata[j].childNodes[1].firstChild.nodeValue); this._parent["btn"+j].enabled = true; } this.enabled = false; this.setcolor(pushedcolor); tuWas(menudata[this.id].childNodes[3].firstChild.nodeValue); }; } else if (menudata[i].childNodes[2].firstChild.nodeValue == "site") { this["btn"+i].onRelease = function() { for (var j = 0; j<menudata.length; j++) { this._parent["btn"+j].setcolor(menudata[j].childNodes[1].firstChild.nodeValue); this._parent["btn"+j].enabled = true; } this.enabled = false; this.setcolor(pushedcolor); tuWasSite(); //trace("hallo"); //tuWas(menudata[this.id].childNodes[3].firstChild.nodeValue); }; } } } // hier kann der bilderloader aufgerufen werden mit der jeweiligen id function tuWas(ID) { //trace(ID); //_root.thumbmovie.container.removeMovieClip("_root. thumbmovie.container.picstrip"); _root.loading._visible = true; _root.textout.titleField.text = " "; _root.textout.descriptionField.text = " "; _root.fullsize.unloadMovie(); _root.thumbmovie.xmousecontroller.xphoto = 0; _root.thumbmovie.container._x = 0; _root.thumbmovie.slider._x = -9; _root.thumbmovie.container.attachMovie("picstrip", "picstrip", 100, {story:ID, _x:0}); } function tuWasSite() { trace("hallo"); removeMovieClip(_root.thumbmovie.container.picstri p); _root.textout.titleField.text = " "; _root.textout.descriptionField.text = "patrick@ppenkwitt.com"; _root.fullsize.unloadMovie(); _root.thumbmovie.xmousecontroller.xphoto = 0; _root.thumbmovie.container._x = 0; _root.thumbmovie.slider._x = -9; _root.thumbmovie.slider._visible = false; _root.loading._visible = false; } // menu = new XML(); menu.ignoreWhite = true; menu.onLoad = function() { createmenu(this.firstChild.childNodes, this.firstChild.attributes.overcolor, this.firstChild.attributes.pushedcolor, 0); delete this; }; menu.load("menu.xml"); // tuWas("01"); // [/script] im library gelinkten movieclip laedt das folgende script die bilder: [script] //xml datei laden // XML-Objekt erzeugen (Bezeichner: mein_xml) mein_xml = new XML(); // Störende Leerzeichen ignorieren mein_xml.ignoreWhite = true; // XML-Datei einlesen mein_xml.load("gallery_" + story + ".xml"); // Lesevorgang mein_xml.onLoad = function(status) { if (status && this.loaded) { anzahl = mein_xml.firstChild.childNodes.length; _root.thumbmovie.container.thumbnumber = anzahl; geladen = true; //trace("hallo"); //trace(story); //trace(anzahl); if (anzahl <=13) { _root.thumbmovie.slider._visible = false; } else { _root.thumbmovie.slider._visible = true; } createGallery(this.firstChild.childNodes, anzahl); } }; //in einer schleife movieclips erzeugen // function createGallery(gallerydata, anzahl) { for (i=1; i<=anzahl; i++) { //trace("hallo "+i); this.createEmptyMovieClip(["holder"+i], i); //cover flaechen erzeugen this.createEmptyMovieClip(["cover"+i], i+100); this["cover"+i]._alpha = 70; this["cover"+i].beginFill(0x333333); this["cover"+i].moveTo(0, 0); this["cover"+i].lineTo(64, 0); this["cover"+i].lineTo(64, 40); this["cover"+i].lineTo(0, 64); this["cover"+i].lineTo(0, 40); this["cover"+i].endFill(); // this["holder"+i].imageName = gallerydata[i-1].firstChild.firstChild.nodeValue; this["cover"+i].imageNameTrigger = gallerydata[i-1].firstChild.firstChild.nodeValue; this["cover"+i].imageTitle = gallerydata[i-1].childNodes[1].childNodes[0].nodeValue; this["cover"+i].imageDescription = gallerydata[i-1].childNodes[2].childNodes[0].nodeValue; this["holder"+i].createEmptyMovieClip(["thumb"+i], i); loadMovie(this["holder"+i].imageName, this["holder"+i]["thumb"+i]); this["holder"+i]._xscale = 8.7; this["holder"+i]._yscale = 8.7; /* this["cover"+i].onRelease = function () { //trace(this.imageTitle); //trace(this.imageDescription); //_root.fullsize.loadMovie(this.imageNameTrigger); //_root.textout.titleField.text = this.imageTitle; //_root.textout.descriptionField.text = this.imageDescription; }; */ this["cover"+i].onRollOver = function () { this._alpha = 0; _root.fullsize.loadMovie(this.imageNameTrigger); _root.textout.titleField.text = this.imageTitle; _root.textout.descriptionField.text = this.imageDescription; }; this["cover"+i].onRollOut = function () { this._alpha = 70; }; if (i != 1) { this["holder"+i]._x = this["holder"+(i-1)]._x + this["holder"+(i-1)]._width + 70; this["cover"+i]._x = this["cover"+(i-1)]._x + this["cover"+(i-1)]._width + 6; } } function triggerFirst () { _root.fullsize.loadMovie(gallerydata[0].firstChild.firstChild.nodeValue); } triggerFirst(); //this.cover1._alpha = 0; } [/script] meine fragen waeren vor allem folgende: 1. Wie kann ich den ladevorgang optimieren, so dass es kein problem bei langsamen verbindungen gibt? 2. Wie muss ich hier eine preloading routine fuer jedes bild einzeln einbauen? 3. Ich habs noch nicht geschafft das laden der reihe nach zu implementieren, hat da jemand einen tip? 4. Warum gibts hier vor allem beim mac solche probleme, ich kann sie unter windows nicht nachvollziehen, hat da jemand erfahrung mit? 5. Wie verhaelt es sich mit dem Caching von externen jpgs die hier geladen werden. habe naemlich beobachtet dass firefox 1.06 die bilder nicht cached waehrend IE6 cached und das macht in diesem fall viel weniger probleme. genauso scheint auch safari eben nicht zu cachen. das 'nicht cachen' bedeutet, dass die bilder die eigentlich geladen sind, noch mal vom server geladen werden wenn ich sie im display anzeige ueber die variable 'imageNameTrigger'. das verzoegert die sache ja nochmal. 6. Kann es sein dass es ein generelles problem mit flashplayer 6 auf mac gibt von dem ich nichts weiß? Ich konnte jetzt reproduzieren dass jpgs auf mac extrem zerstört ankommen, also ganz krasse datenübertragungsfehler aufweisen, wie ich sie auf dem PC noch nie gesehn hab. Die preview version der seite liegt momentan unter http://www.ppenkwitt.com/new/ bin fuer jede hilfe dankbar greetz M4Z |
| | |
| | #2 (permalink) |
| man lernt immer dazu Registriert seit: Dec 2003 Ort: Freiburg
Beiträge: 442
|
hallo ich kann dir schildern wie das bei unter macosx läuft...langsam. Allerdings liegt das nicht an deinem script als vielmehr an OSX und safari. OSX hat von haus aus ( alle unix systeme) eine broadband drossel drin und safari hat ,gott weiss warum ,die angewohnheit daten verzögert zu laden...wenn ichs mit firefox lade sieht das schon etwas besser aus, die ladeperformance lässt allerdings immernoch etwas zu wünschen übrig. was zerstörte jpgs angeht...ich hab keine gefunden..sollte alson eher an dem rechner deines kunden oder seiner leitung liegen. es sieht mir auch so aus als ob er etwas lange bräuchte die xml daten auszuwerten, denn er lädt manchmal kontinuierlich und manchmal extrem verzögert ( aber eigentlich habe ich keine ahnung)... weiss nicht ob ich dir helfen konnte... liebe grüsse daniel |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Nov 2004
Beiträge: 2
|
hi dabinjo, klar hilft mir auf jeden fall schon mal weiter, was du schilderst. superthx fuer deine muehe. ich denke ich muss beim laden mit einbauen, dass das script die bilder nacheinander laedt, also eine preloading routine irgendwie unterbringen. weiss nur noch nicht genau wie. werde da heute mal rumprobieren. wenn jemand n tipp dazu haette waers sehr hilfreich. ausserdem hab ich teilweise gelesen dass der flashplayer6 beim mac sehr buggy sein soll, ist da was dran? werde jetzt flashplayer7 exportieren und voraussetzen. greetz M4Z |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |