Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash CS3 Professional

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-05-2010, 11:56   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2002
Beiträge: 33
Bilder laden+skalieren manchmal falsch

Hallo allerseits,

in der Flash-Entwicklungsumgebung funktioniert alles perfekt, online normalerweise auch - aber eben nicht immer, und ich kann nicht nachvollziehen, woran es hängt...
Manchmal werden einzelne Bilder nicht skaliert, während die restlichen Bilder ganz normal angezeigt werden. Manchmal werden auch einzelne Bilder als rote Fläche dargestellt - dann aber in der Skalierung, die das Bild haben sollte. Ich habe keinen Schimmer, wo das herkommt, da jedes Bild in einen leeren MC geladen wird.
Wann diese Effekte auftreten, kann ich einfach nicht verlässlich nachvollziehen - wenn ich die Seite im Browser neu lade stimmt wieder alles. Dachte daher erst an Caching-Probleme - taucht aber manchmal auch direkt nach dem Cache-Leeren auf.

Irgendwelche Hinweise, woran sowas liegen kann? Gibt's irgendwelche bekannten Flash-Probleme beim Laden großer Bildmengen? Es sind etwa 20MB, die hier nachgeladen werden. (ich weiß, ich weiß... aber der Kunde will sie nicht stärker komprimieren...)

Die Seite: www.lichtpixel.com/ueoe/

Zur Technik: Alle Bild-URLs stehen in einem Array, erst wenn ein Bild geladen ist, wird das Laden des nächsten Bildes angestoßen.

Stark gekürzt:
Code:
function loadPic(loadPicAct) {
   ref.loadMovie(images[loadPicAct]);
   this.onEnterFrame = function() {
	var gesamt:Number = ref.getBytesTotal();
	var geladen:Number = ref.getBytesLoaded();
	var prozent:Number = Math.ceil((geladen/gesamt)*100);
	if (prozent == 100 && geladen>4) {
                 //hier kommt dann einiges an Skalierungsfunktionen je nach Bild...
                 loadPic(nextpic);
           }
   }
}
Und die komplette Ladefunktion:
Code:
images = new Array("img/11.jpg","img/111.jpg","img/112.jpg","img/113.jpg","img/12.jpg","img/121.jpg","img/122.jpg","img/13.jpg","img/131.jpg",
"img/132.png","img/21.jpg","img/211.jpg","img/212.jpg","img/213.jpg","img/22.jpg","img/221.jpg","img/222.jpg","img/23.png","img/231.jpg","img/31.jpg",
"img/311.jpg","img/312.jpg","img/313.jpg","img/32.jpg","img/321.jpg","img/322.jpg","img/33.jpg","img/331.jpg","img/332.jpg","img/41.jpg","img/42.jpg","img/223.swf");
vollbild = new Array("img/13.jpg","img/131.jpg","img/222.jpg","img/41.jpg","img/42.jpg");
vollflaeche = new Array("img/23.png","img/33.jpg","img/331.jpg","img/332.jpg");
scrollbar = new Array("img/211.jpg","img/223.swf");

images_loaded = new Array();
function loadPic(loadPicAct) {
	if (loadPicAct<images.length && images_loaded.indexOf(images[loadPicAct]) == -1) {
		var id = images[loadPicAct].substring(images[loadPicAct].indexOf("/")+1,images[loadPicAct].indexOf("."));
		if (scrollbar.indexOf(images[loadPicAct]) != -1) var ref = eval("page"+id).imgscroll.scrollfield;
		else var ref = eval("page"+id).img;
		refheight = pagemcheight["page"+id];
		refwidth = ref._parent._width;
		ref._alpha = 0;
		var timestamp = new Date().getTime();
		ref.loadMovie(images[loadPicAct]+"?reload="+timestamp);
		//ref.loadMovie(images[loadPicAct]);
		this.onEnterFrame = function() {
			var gesamt:Number = ref.getBytesTotal();
			var geladen:Number = ref.getBytesLoaded();
			var prozent:Number = Math.ceil((geladen/gesamt)*100);
			if (prozent == 100 && geladen>4) {
				//trace("geladen "+loadPicAct+" "+ref+" "+images[loadPicAct]);
				tracing += id+" ";
				images_loaded.push(images[loadPicAct]);
				if (vollbild.indexOf(images[loadPicAct]) != -1) {
					var scalefactor = pwidth / (ref._width*pagescalefactor);
					if (ref._height * scalefactor < Stage.height) {
						scalefactor = refheight / (ref._height*pagescalefactor);
					}
					ref._height *= scalefactor;
					ref._width *= scalefactor;
					if (id==41 || id==42) {
						//if (id == 41) tracing = " "+ref._x+" "+ref._width+" "+pagescalefactor+" "+refwidth+" "+ref._parent._width+" "+pwidth;
						ref._x -= (ref._parent._width - pwidth) / pagescalefactor;
						//if (id ==41) tracing += " "+ref._x;
					}
				} else if (vollflaeche.indexOf(images[loadPicAct]) != -1 && images[loadPicAct] != "img/23.png") {
					var scalefactor = (pwidth / ref._width) / pagescalefactor;
					ref._height *= scalefactor;
					ref._width *= scalefactor;
					ref._y = ((Stage.height / pagescalefactor) * 1.01 - ref._height);
				} else {
					if (images[loadPicAct] == "img/211.jpg") { //scrollbar vertical
						var scalefactor = 534 / ref._width;
					} else if (images[loadPicAct] == "img/223.swf") { //scrollbar horizontal
						var scalefactor = 382 / ref._height;
					} else if (images[loadPicAct] == "img/132.png") {
						var scalefactor = ((refwidth / ref._width) / pagescalefactor) * 1.02;
						audio = new Sound(this); 
						page132.b_pp.onRelease = function() {
							if (page132.b_play._visible == true) {
								page132.b_play._visible = false;
								page132.b_pause._visible = true;
								audio.loadSound("dom.mp3", true);
							} else {
								page132.b_play._visible = true;
								page132.b_pause._visible = false;
								audio.stop();
							}
						}
					} else if (images[loadPicAct] == "img/21.jpg") {
						var scalefactor = (ref._parent.nav._height / ref._height) * 1.06;
					} else if (images[loadPicAct] == "img/212.jpg") {
						var scalefactor = ((refwidth * 0.93) / ref._width) / pagescalefactor;
					} else if (images[loadPicAct] == "img/213.jpg") {
						var scalefactor = ((refheight * 0.69) / ref._height) / pagescalefactor;
					} else if (images[loadPicAct] == "img/221.jpg") {
						var scalefactor = ((refwidth * 0.8) / ref._width) / pagescalefactor;
					} else if (images[loadPicAct] == "img/23.png") {
						var scalefactor = ((refheight * 0.46) / ref._height) / pagescalefactor;
					} else if (images[loadPicAct] == "img/231.jpg") {
						var scalefactor = ((refwidth * 0.88) / ref._width) / pagescalefactor;
					} else if (images[loadPicAct] == "img/31.jpg" || images[loadPicAct] == "img/311.jpg" || images[loadPicAct] == "img/312.jpg" || images[loadPicAct] == "img/313.jpg") {
						var scalefactor = ((refheight * 0.595) / ref._height) / pagescalefactor;
					} else if (images[loadPicAct] == "img/32.jpg" || images[loadPicAct] == "img/321.jpg" || images[loadPicAct] == "img/322.jpg") {
						var scalefactor = ((refheight * 1) / ref._height) / pagescalefactor;
					} else if (images[loadPicAct] == "img/12.jpg" || images[loadPicAct] == "img/121.jpg" || images[loadPicAct] == "img/122.jpg") {
						var scalefactor = ((refheight * 0.775) / ref._height) / pagescalefactor;
					} else {
						var scalefactor = ((refheight * 0.81) / ref._height) / pagescalefactor;
					}
											
					ref._height *= scalefactor;
					ref._width *= scalefactor;
					if (scrollbar.indexOf(images[loadPicAct]) == -1 && images[loadPicAct] != "img/32.jpg" && images[loadPicAct] != "img/321.jpg" && images[loadPicAct] != "img/322.jpg") {
						ref._x -= ref._width / 2;
					}
					if (images[loadPicAct] == "img/231.jpg") {
						ref._x -= ref._width / 17;
					}
				}
				ref.forceSmoothing = true;
				ref._alpha = 0;
				new Tween(ref, "_alpha", Strong.easeOut, ref._alpha, 100, 1, true);
				new Tween(ref._parent.imgpreloader, "_alpha", Strong.easeOut, ref._parent.imgpreloader._alpha, 0, 1, true);
				var t = eval("timer_preloader"+loadPicAct);
				t = setTimeout(setval, 1000, ref._parent+".imgpreloader._visible", false);
				if (images_loaded.indexOf("img/"+page+".jpg") == -1 && images_loaded.indexOf("img/"+page+".png") == -1 && images_loaded.indexOf("img/"+page+".swf") == -1) {
					var nextpic = images.indexOf("img/"+page+".jpg");
					if (nextpic == -1) nextpic = images.indexOf("img/"+page+".png");
					if (nextpic == -1) nextpic = images.indexOf("img/"+page+".swf");
					if (nextpic == -1) nextpic = (loadPicAct*1)+1;
				} else {
					nextpic = (loadPicAct*1)+1;
				}
				loadPic(nextpic);
			}
		};
	} else if (loadPicAct<images.length) { // load next pic if current is already loaded
		loadPic((loadPicAct*1)+1);
	} else if (images.length > images_loaded.length) { // restart at beginning if not all pics loaded yet
		loadPic(0);		
	} else { // done
		trace("alle geladen");
		preloader._visible = false;
		delete this.onEnterFrame;
	}
}
loadPic(0);

Geändert von curiosity (12-05-2010 um 11:57 Uhr)
curiosity ist offline   Mit Zitat antworten
Alt 14-05-2010, 17:55   #2 (permalink)
Neuer User
 
Registriert seit: Feb 2002
Beiträge: 33
Hat sich erledigt...
Hab zwar keine Ahnung, was das Problem ist, aber da bei fehlerhaftem Laden seltsame Werte rauskommen, kann ich das abragen, das Bild per unloadMovie() rausschmeißen und nochmal laden... teilweise mehrfach hintereinander, irgendwann klappt's dann...
curiosity 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilder laden und skalieren eichhoff Flash CS3 Professional 2 08-02-2009 14:51
Bilder dynamisch laden und skalieren framic Flash Einsteiger 7 15-01-2007 10:22
viele bilder dyn. laden und skalieren ToKo Softwarearchitektur und Entwurfsmuster 2 18-12-2004 14:21
Bilder laden mit loadMovie und skalieren FoV Flash MX 2004 2 14-10-2004 06:55
bilder laden und skalieren nky Flash MX 9 07-07-2002 14:45


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:54 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele