Adobe Flash [Flash CS3] Probleme mit relativen Pfaden in Flash

B

BFBS

Aktives Mitglied
Thread Starter
Dabei seit
15.07.2006
Beiträge
471
Reaktionspunkte
16
Moinsen,

so seit langer Zeit widme ich mich mal wieder Flash und habe auch gleich ein Problem. Hoffe übrigens, dass die Überschrift für mein Problem so richtig gewählt ist.


Und zwar folgendes:

Ich habe eine SWF "main", in der sich das Menü befindet. Klickt man nun auf einen Menü-Button, so wird der entsprechende Beitrag (ext. swf) per loadmovie-Anweisung in ein leeres MC names "Beitrag" geladen. Soviel zum Aufbau ...

Nun habe ich mir eine Gallery zusammengebastelt, bei der die Pfade zu den Bilder zunächst aus einer XML ausgelesen und anschließend in ein Array geladen werden. Lade ich nun diese Gallery in das MC "Beitrag" in der "Main" werden die Bilder nicht geladen. Wird ein Problem mit den "Zuordnungsebenen" sein - also parent, etc. - mir will der richtige Ausdruck gerade nicht einfallen.

Wie löse ich mein Problem am Besten? Komme ich damit weiter, dass ich über all ein "this" vorsetze? Wenn ja, wo müsste ich das überall vorsetzen?

Mein Script sieht übrigens so aus ...

Code:
// *************** Bilder in Array und Intialisierung *********************
var XMLdaten:XML = new XML();
XMLdaten.ignoreWhite = true;
XMLdaten.load("bilder.xml");

var images:Array = new Array ();
var popup:Array = new Array ();
var popup_width:Array = new Array();
var popup_height:Array = new Array();


XMLdaten.onLoad = function(success) 
{
if (success)
    {
	for (var i = 0; i < XMLdaten.firstChild.childNodes.length; i ++)
		{
			images[i] = XMLdaten.firstChild.childNodes[i].attributes.source;
			popup[i] = XMLdaten.firstChild.childNodes[i].attributes.full; 	
			popup_width[i] = XMLdaten.firstChild.childNodes[i].attributes.width; 
			popup_height[i] = XMLdaten.firstChild.childNodes[i].attributes.height;
				}
	trace (images);
	}
else
	{
	trace ("Fehler beim Laden");
	}
// Bilder wurden in ein Array geladen!
		
weiter.onRelease = function() {
    showNext();
}

back.onRelease = function() {
    showBack();
}

full.onRelease = function() {
			
	winX = (System.capabilities.screenResolutionX - popup_width[current])/2;
	winY = (System.capabilities.screenResolutionY - popup_height[current])/2;
		
	getURL("javascript:window.open('"+popup[current]+"','','width="+popup_width[current]+",height="+popup_height[current]+",left="+winX+", top="+winY+", toolbar=no, menubar=no,location=no,status=no,resizable=no,scrollbars=no');void(0);");

}

showNext();
// hier werden die möglchen Funktionen aufgerufen! Diese muss immer in der onLoad stehen
}
	
// *************** Bilder Gallery *********************
var current = -1;
var path = "";

var preload = holder.createEmptyMovieClip("preload", 1);
holder._visible = false;

var image = ct.createEmptyMovieClip("image", 1);
ct._alpha = 0;

loader._visible = false; 
bgnd._visible = false;
shadow._visible = false;
full._alpha = 0;

function showNext() {
    current ++;
    if (current >= images.length) current = 0;
    loadImg(images[current]);
}

function showBack() {
    current --;
    if (current < 0) current = images.length - 1;
    loadImg(images[current]);
}

function loadImg(path) {
	_path = path;
	preload.loadMovie(path);
	//loader._x = int(bgnd._width / 2);
	//loader._y = int(bgnd._height / 2);
	loader.setPerc(0);
	holder.onEnterFrame = function() {
		var cur = preload.getBytesLoaded();
		var max = preload.getBytesTotal();
		if (cur > 10 && max > 10) {
			var p = cur * 100 / max;
			loader._visible = true;
			loader.setPerc(p);
			if (p >= 100) {
				delete holder.onEnterFrame;
				loader._visible = false;
				 bgnd._visible = true;
				 shadow._visible = true;
				 hideImg();
				 hideFull();
			}
		}
	}
}

function hideImg() {
	ct.onEnterFrame = function() {
		this._alpha += (0 - this._alpha) / 3;
		if (this._alpha <= 1) {
			this._alpha = 0;
			delete this.onEnterFrame;
			swapImg();
		}
	}
}

function swapImg() {
	image.loadMovie(_path);
	reScale(preload._width, preload._height);
}

function reScale(w, h) {
	image._x = -w / 2;
	image._y = -h / 2;
	w += 15;
	h += 15;
	this.onEnterFrame = function() {
		bgnd._width += (w - bgnd._width) / 2;
		bgnd._height += (h - bgnd._height) / 2;
		shadow._width = bgnd._width;
		shadow._height = bgnd._height;
		weiter._x = int(bgnd._width / 2);
		weiter._y = 0;
		back._x = int(-bgnd._width / 2);
		back._y= 0;
		full._x = int(bgnd._width / 2) - 25;
		full._y = int(bgnd._height / 2) - 25;	
		
		if (Math.abs(w - bgnd._width) < 1 && Math.abs(h - bgnd._height) < 1) {
			bgnd._width = w;
			bgnd._height = h;
			shadow._width = bgnd._width;
			shadow._height = bgnd._height;
			delete this.onEnterFrame;
			showImg();
			showFull();
		}
	}
}

function showImg() {
	ct.onEnterFrame = function() {
		this._alpha += (100 - this._alpha) / 3;
		if (this._alpha >= 99) {
			this._alpha = 100;
			delete this.onEnterFrame;
		}
	}
}

function showFull() {
	full.onEnterFrame = function() {
		this._alpha += (100 - this._alpha) / 3;
				if (this._alpha >= 99) {
			this._alpha = 100;
			delete this.onEnterFrame;			
		}
	}
}


function hideFull() {
	full.onEnterFrame = function() {
		this._alpha += (0 - this._alpha) / 3;
		if (this._alpha <= 1) {
			this._alpha = 0;
			delete this.onEnterFrame;
			
		}
	}
}

mfg
BFBS
 
Zurück
Oben Unten