Horizontaler Scoller

Hallo,

ich habe probleme mit diesem Horizontalen Scroller hier (siehe Anhang):

PHP:
factor = 20;
this.onEnterFrame = function() {
	speed = ((this.ct._width / 2) - _root._xmouse) / factor;
	ct._x += speed;
	if (this.ct._x > this.mask._x) {
		trace("links - ende");
	}
	if ((this.mask._x + this.mask._width) > (this.ct._x + this.ct._width)) {
		trace("rechts - ende");
	}
};

Er soll jeweils am Ende links oder rechts, wenn es geht, weich abstoppen.

Weiß jemand Rat?

cu
 

Anhänge

Hallo,

was ich an deinem Script geändert hab:
1. Die Art und Weise, wie die Distanz vom ct._x zu ct._x + dem neuen Abstand zurückgelegt wird.

2. Die Bedingungen, die auf die linke bzw. die rechte Grenze überprüfen.

3. Die Werte, die sich nicht verändern (wie z.B. die Mitte der Maske, die seitlichen Grenzwerte usw.), hab ich aus der Schlaufe genommen und durch Variablen ersetzt. Das mag bei dir noch nicht ins Gewicht fallen, aber solche wiederholten Berechnungen kosten dich Performance und codetechnisch gesehen vor allem Übersicht.

Hier das Script:

Code:
var factor = 20;
var speed = .5; // Für Speed gilt 0 < speed < 1

var left = mask._x;
var right = mask._x + mask._width;
var middle = this.mask._width / 2;

this.onEnterFrame = function() {
	
	var step = (middle - _root._xmouse) / factor;
	var newX = ct._x + step;
	
	if (newX  < (right - ct._width)) {
		newX = right - ct._width;
		trace("left - ende");
	}
	
	if (newX > left) {
		newX = left;
		trace("right - ende");
	}

	var dif = newX - ct._x;
	dif *= speed;
	ct._x += dif;
		
};

gruss
 

Neue Beiträge

Zurück