Movieclip scrollen funktioniert nur in eine Richtung

bebu

Grünschnabel
Hallo zusammen,

ich lade in eine Container-MC externe swf's ein. Dann soll der Container gescrollt werden - mit Hilfe eines anderen MC's. Klappt auch schon ganz gut, jedoch nur in eine Richtung.
Des weiteren soll der Container MC seine richtige Position einnehmen, auch wenn die Maus nicht mehr gedrückt wird. Allein komme ich nicht weiter, wäre schön, wenn jemand helfen könnte.

Code:
stop();
fscommand("allowscale", "false");
// für Timer
var id_num:Number;
var ytemp = 80;
_root.createEmptyMovieClip('container_rahmen_mc', 5000);
container_rahmen_mc.attachMovie('buehnenrahmen', 'buehnenrahmen_mc', 5001);
// CONTAINER erzeugen
_root.attachMovie('container_mc', 'container_mc', 100);
// /////////////////////////////////////////////////////////////////////////////
// Inhalt1 Schleife basteln und Level beachten
// /////////////////////////////////////////////////////////////////////////////
_root.container_mc.createEmptyMovieClip('container_clip1_mc', 110);
_root.container_mc.container_clip1_mc._y = 0;
_root.container_mc.container_clip1_mc.loadMovie('1.swf');
// Inhalt2
_root.container_mc.createEmptyMovieClip('container_clip2_mc', 120);
_root.container_mc.container_clip2_mc._y = 640;
_root.container_mc.container_clip2_mc.loadMovie('2.swf');
// Inhalt3
_root.container_mc.createEmptyMovieClip('container_clip3_mc', 130);
_root.container_mc.container_clip3_mc._y = 1280;
_root.container_mc.container_clip3_mc.loadMovie('3.swf');
// Inhalt4
_root.container_mc.createEmptyMovieClip('container_clip4_mc', 140);
_root.container_mc.container_clip4_mc._y = 1920;
_root.container_mc.container_clip4_mc.loadMovie('4.swf');
// Scrollleiste hinzufügen
_root.attachMovie('scroll_mc', 'scroll_mc', 6000);
_root.scroll_mc._x = 10;
_root.scroll_mc._y = 594;
// 
scroll_mc.onPress = function() {
	this.startDrag(true, 10, 46, 10, 594);
	// setInertval ruft eine erstellte Funktion in festgelegten Abständen (ms) auf
	id_num = setInterval(bewegen, 100);
};
scroll_mc.onRelease = function() {
	this.stopDrag();
	clearInterval(id_num);
};
scroll_mc.onReleaseOutside = scroll_mc.onRelease;
// /////////////////////////////////////////////////////////////////////////////
// Funktion - Scrollen des Inhaltes
// /////////////////////////////////////////////////////////////////////////////
function bewegen() {
	if (scroll_mc._y<155) {
		// ich dachte das könnte ein scrollen des MC's bewirken
		if (_root.container_mc._y>-1920) {
			_root.container_mc._y = _root.container_mc._y-ytemp;
			trace(_root.container_mc._y);
		}
		trace("4");
	} else if (scroll_mc._y>155 && scroll_mc._y<310) {
		if (_root.container_mc._y>-1280) {
			_root.container_mc._y = _root.container_mc._y-ytemp;
			trace(_root.container_mc._y);
		}
		trace("3");
	} else if (scroll_mc._y>310 && scroll_mc._y<465) {
		if (_root.container_mc._y>-640) {
			_root.container_mc._y = _root.container_mc._y-ytemp;
			trace(_root.container_mc._y);
		}
		trace("2");
	} else if (scroll_mc._y>465) {
		if (_root.container_mc._y>-0) {
			_root.container_mc._y = _root.container_mc._y-ytemp;
			trace(_root.container_mc._y);
		}
		trace("1");
	}
};

Danke!
Sabine
 

Anhänge

Hi,

eigentlich genügt so etwas völlig:
Code:
function bewegen() {
	_root.container_mc._y = 150 - scroll_mc._y * (_root.container_mc._height / 590);
}
Mit den Zahlen musst Du eventuell noch etwas spielen bis sie passen; Du kannst den Faktor (hier die 590) auch durch die Bühnenhöhe und die Höhe des Scrollbalkens berechnen.

Gruß
.
 
Ok, das funktioniert. :-) Nur möchte ich, dass der Container halt dann auch einrastet. Sind ja 4 swf''s untereinandergepappt. Wenn ich an der Scrollleiste an einem Bereich bin, soll auch nur MC 1 gezeigt werden. Verstehst du was ich meine

Hast du noch eine Idee dazu?
Danke - Sabine
 
Hi,

ja, Du musst den Wert runden.

Dabei ist es recht unpraktisch mit Zahlen zu arbeiten, die man (wie oben) durch Probieren herausgefunden hat. Ich mache Dir nachher mal ein Beispiel dafür fertig.

Gruß
.
 
Hi,

Beispiel im Anhang. (Ist etwas "auf die Schnelle" - wenn Du einen übersichtlichen und leistungsfähigeren Scroller haben willst: es gibt in der Tutorial-Sektion was zu dem Thema ;) )

Gruß
.
 

Anhänge

Danke Datic! Echt nett von dir!

Ich schaue bald mal tiefer rein, momentan kämpfe ich mit den Netstreams. Uff!

Beste Grüsse
Sabine
 
Smile! Naja, geht so. Vorallem, wenn man auf folgendes trifft:

Code:
function spieleVideo() {
	if (abspielKopf == 0) {
                //warum muss ich einen Pfad der aus einer XML-Datei stammt in einen String wandeln? 
		var pfad = (pfadListe_array[mediaIndex_num]).toString(); 
		netStream.play(pfad);
	} else {
		netStream.seek(abspielKopf);
	}
}

Jedenfalls hat mich dieses Problemchen einige Nerven gekostet!
Schöne Grüsse
Sabine

PS: Schaue gerade intensiver in deine Datei! :-)
 
Zurück