"We are back" « oc.at

flash -> automatisch zu position wechseln

|CoRaX| 28.01.2004 - 08:29 2634 0
Posts

|CoRaX|

Little Overclocker
Avatar
Registered: Aug 2002
Location: WL
Posts: 98
guten morgen! :)

tja hab gestern den code für ein flash file geschrieben nur leider passt irgendwas beim code nicht...
kurze erkärung zum ganzen:
ich hab 8 bilder zwischen denen ich mit einem links und einem rechts pfeil wechseln kann (rechter pfeil: nächstes bild, linker pfeil: vorheriges bild). die bilder sind natürlich in einem array gespeichert das verkettet ist. das funktioniert eigentlich perfekt. nun das eigentlich problem: ich habe zusätzlich noch 5 buttons die jeweils einem bild zugeordnet sind (z.b.: button 1 ist bild 1 zugewiesen, button 2-> bild 3, button 3 -> bild 5,...). Wenn man nun schon ein wenig zwischen den bildern gescrollt hat und z.b. gerade bei bild nummer 3 steht und jetzt auf button 3 (= bild 5) klickt, soll:
-der kürzeste weg berechnet werden (vorheriges bild oder nächstes bild)
-alle bilder die auf dem weg zum zielbild liegen für 1 sekunde angezeigt werden.

ich hoffe ihr könnt mir einigermaßen folgen.....ich bin nämlich selbst schon so verwirrt das ich mich nicht mehr auskenne ;)

und ich hab schon auf allen tutorial seiten geschaut ob ich was finde... leider ergebnislos!
tja hier ist mein code:

Code:
// picture-directory--------------------------------------------------
this.pathToPics = "images/";


//picutre array-------------------------------------------------------
this.pArray = ["Test01.jpg", "Test02.jpg", "Test03.jpg", "Test04.jpg", "Test05.jpg", "Test06.jpg", "Test07.jpg", "Test08.jpg"];
this.fadeSpeed = 40;
this.pIndex = 0;


//loadmovie-----------------------------------------------------------
loadMovie(this.pathToPics+this.pArray[0], _root.photo);


//change photo--------------------------------------------------------
MovieClip.prototype.changePhoto = function(d) {
	
	this.pIndex = (this.pIndex+d)%this.pArray.length;
	if (this.pIndex<0) {
		this.pIndex += this.pArray.length;
	}
	this.onEnterFrame = fadeOut;
};


//fade out------------------------------------------------------------
MovieClip.prototype.fadeOut = function() {
	if (this.photo._alpha>this.fadeSpeed) {
		this.photo._alpha -= this.fadeSpeed;
	} else {
		this.loadPhoto();
	}
};


//load photo----------------------------------------------------------
MovieClip.prototype.loadPhoto = function() {

	var p = _root.photo;
	p._alpha = 0;
	p.loadMovie(this.pathToPics+this.pArray[this.pIndex]);
	this.onEnterFrame = fadeIn;
};


//fade in-------------------------------------------------------------
MovieClip.prototype.fadeIn = function() {
	if (this.photo._alpha<100-this.fadeSpeed) {
		this.photo._alpha += this.fadeSpeed;
	} else {
		this.photo._alpha = 100;
		this.onEntaerFrame = null;
	}
};


//key- press functions------------------------------------------------
this.onKeyDown = function() {
	if (Key.getCode() == Key.LEFT) {
		this.changePhoto(-1);
	} else if (Key.getCode() == Key.RIGHT) {
		this.changePhoto(1);
	}
};
Key.addListener(this);



//go to Position-----------------------------------------------------
//-------------------------------------------------------------------

MovieClip.prototype.gotoPosition = function(nextPos) {
	while(this.pIndex !== nextPos) {

		diff1 = (nextPos - this.pIndex);
		diff2 = (this.pIndex - nextPos);

		if( diff1 < diff2){
			this.changePhoto(+1);
		} else if (diff1 > diff2){
			this.changePhoto(-1);
		} else if (diff1 == diff2){
			stop();
		}
			this.onEnterFrame = Check;
	}
};

MovieClip.prototype.Check = function(){
	
	var Interval;
	Interval = setInterval(gotoPosition, 1000);
	clearInterval(Interval);
};

und hier das Script eines buttons:
Code:
on(release){
	_root.gotoPosition(3);
}

ich hoffe es kann mir jemand helfen, ich steh heute nämlich echt schon an...
tia -corax

PS: sorry das es so lang geworden ist ;)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz