Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-09-2005, 09:01   #1 (permalink)
m4z
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
m4z ist offline   Mit Zitat antworten
Alt 06-09-2005, 10:04   #2 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
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
dabinjo ist offline   Mit Zitat antworten
Alt 07-09-2005, 09:51   #3 (permalink)
m4z
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
m4z 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 08:54 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele