Wie bekomm ich die Bilder in die Laufleiste?

ZIGGY_WillES

Mitglied
Hi zusammen,

Ich möchte auf meiner Seite gern eine Bildlaufleiste integrieren. Folgendes Skript hab ich auf dieser Seite gefunden. Da ich mich aber nun erst seit kurzen mit dem Programmieren überhaupt beschäftige weiss ich nicht wie ich die Bilder da hinein lad bzw. an welcher Stelle ich den Quellordner angeb.

Wenn ich das richtig verstehe ist "picture" ja eine definierte Variable und nicht die Bildersmmalung selbst, die müsste ich doch noch in die Array laden, oder?

Wäre super wenn mir da jemand helfen könnte, die Laufleiste ansich find ich nämlich extrem gut.
Code:
var count = 20;
var middle_x = 200;
var middle_y = 200;
var space_y = 80;
var current_pos = 0;
var speed = 0;
var max_speed = 30;
var acc = 0.5;

var picture = new Array(count);

for (var i=1; i<=count; i++) {
	picture[i] = this.attachMovie("picture", "picture"+i, i);
	picture[i]._x = middle_x;
	picture[i]._y = middle_y - (count / 2 * space_y) + (i-1) * space_y;
	picture[i]._alpha = getAlpha(picture[i]._y);
	picture[i]._yscale = getScale(picture[i]._y);
	picture[i]._xscale = picture[i]._yscale;
}

function getAlpha(y) {
	var a = getRank(y);
	a = 100 / Math.exp(a/100);// (a / 100 +1);
	if (a > 80) a += 10;
	return a;
}

function getScale(y) {
	var a = getRank(y);
	a = 100 - (a / 5);
	//trace(a);
	return a;
}

function getRank(y) {
	return Math.abs(middle_y - y);
}

this.onEnterFrame = function() {
	if (_ymouse < middle_y - space_y / 2) {
		if (speed < max_speed) speed +=acc;
	} else if (_ymouse > middle_y + space_y / 2) {
		if (speed > -max_speed) speed -=acc;
	} else {
		if (speed < 0) speed +=acc;
		if (speed > 0) speed -=acc;
	}
	current_pos += speed;
	if (current_pos > (count / 2 * space_y)) {
		current_pos = count / 2 * space_y;
		speed = 0;
	}
	if (current_pos < -(count / 2 * space_y)) {
		current_pos = -(count / 2 * space_y);
		speed = 0;
	}
	//trace(current_pos);
	for (var i=1; i<=count; i++) {
		picture[i]._y = middle_y - (count / 2 * space_y) + (i-1) * space_y + current_pos;
		picture[i]._alpha = getAlpha(picture[i]._y);
		picture[i]._yscale = getScale(picture[i]._y);
		picture[i]._xscale = picture[i]._yscale;
		picture[i].swapDepths(255 - getRank(picture[i]._y));
		}
}


Gruß

Fabian
 
Wäre gut wenn du noch dazu postest, von wo du diesen Script hast, denn ein AS hilft an sich nicht viel wenn man ncih weiß wie das ganze aufgebaut ist...
 
Hi,

picture ist auf der Hauptzeitleiste ein Array, in dem Instanzen der Bilder (picture1 bis pictureX) abgelegt werden. Du musst die Bilder als MovieClips unter diesen Bezeichnern in der Bibliothek zum Export für AS freigeben, damit sie per ActionScript instanziert werden können.

Am besten wäre es, wenn Du Deine Datei einmal postest, dann kann ich Dir das sicher anpassen (die Slideshow ist von mir, soweit ich das sehen kann).

Gruß

P.S.: Bitte verwende zum Posten von Code Code- oder PHP-Tags, das erhöht die Lesbarkeit.
.
 
Danke schonmal Datic dass du dir meiner annimmst.
Dass du mir das einbauen würdest find ich sehr nett, mein Ergeiz will aber dass ich das selber hinbekomm. Ich hab zumindest mal die Variablendefinition verstanden, denke ich. Hab sie auch schon so angepasst wie ich das gern hätte. Die Bilder hab ich als jpg in die Bibliothek importiert und in MovieClips konvertiert mit dem Haken bei "Export für ActionScript" und bei "Export in first frame" (das klickt sich bei mir automatisch mit an kann ich auch wieder weg machen, bringt aber nichts). Wenn ich die MovieClips aber nun auf die Bühne ziehe, die Instanznamen vergeb und den Film teste, kommen diese der Reihenfolge nach auch in den Vordergrund, nur leider sind sie nicht in der Laufleiste.


Du sagtest:

picture ist auf der Hauptzeitleiste ein Array

So, mein Problem: Ich weiss nicht was ein Array ist, wie und wo ich ein solches herstelle und wie ich die Movieclips dann in dieses hinein bekomme.

Ich hab im Forum schon nach Array-Erläuterungen geschaut jedoch so richtig klar ist mir das noch nicht geworden.

Da die Frage schon so kompliziert war, ist es die Antwort vielleicht auch.
Also wenn du es lieber einfach machst, dann lad ich die Datei hoch und schau dann was du gemacht hast.

Oder kannst du mir da erläuternd helfen?

Gruß

Fabian
 
Wie gesagt: Poste bitte dennoch Deine Datei, dann kann ich zumindest sehen, was Du falsch gemacht hast.

Das Array wird eigentlich schon im Code erstellt. Soweit ich mich erinnere, musst (bzw. darfst) Du die Bilder nicht selbst auf die Bühne ziehen, da sie zur Laufzeit per AS instanziert werden.

Gruß
.
 
Oh oh, da wirst Du Dich wohl gedulden müssen, bis ich wieder "in der Heimat" bin. Hier (Dialup-Verbindung) kann ich es vergessen, 6 MB herunterzuladen. ;)

... kannst Du nicht eine Dummy-Version erstellen, in der Du alle Bilder entfernst (nimm statt Bitmaps einfach MovieClips mit farbigen Flächen oder so)?

Gruß
.
 
Hi,

Deine Bilder bekommst du in die Slideshow, indem Du in der ersten for-Schleife einfach auch die Bildnummer als Bezeichner für den zu instanzierenden Clip angibst:
PHP:
picture[i] = this.attachMovie("picture" + i, "picture"+i, i);
(ich gebe zu, das hätte ich auch so sehen können, aber das Beispiel ist doch schon so alt, dass ich nicht mehr genau um Kopf hatte, was es macht. ;) )

Wie soll das BIld in der Mitte denn jeweils vergrößert werden? Genügt es, wenn ein vergrößertes Duplikat im linken Bereich der Bühne angezeigt wird, oder soll sich das Bild im Vordergrund langsam in eine mittige (und vergrößerte) Position verschieben? Letzteres wäre etwas aufwendiger und ich muss mal sehen, wann ich die Zeit dafür finde.

Gruß
.
 

Neue Beiträge

Zurück