Ziehharmonika-Effekt wie bei Utopia.de

yannick1508

Grünschnabel
Guten Tag,

ich bräuchte mal einen Denkansatz, alleine komm ich nicht weiter.

Ich möchte einen Header basteln der genauso, oder ähnlich, funktioniert
wie der auf dieser Seite: http://utopia.de/. Ich will das ja selber hinbekommen nur wäre es gut zu wissen womit ich es hinbekommen kann :)

Ich würde das ganze jetzt mit verschieden Szenen angehen, ist viel Arbeit aber besser weiss ich es nicht, dabei gibt es nur ein Problem:
wenn ich einen Button drücke und nun die gewünschte Szene beginnt, wie bekomm ich es hin, dass beim drücken eines andern Buttons die eine Seite weiter läuft und die neu gewählte sich zusätzlich verschiebt (siehe hierzu Utopia.de)

ich hoffe jemand kann mir helfen.

Vielen Dank im Vorraus.
 
Hi,
das ist pures Actionscripting, mit Szenen kommst du da nicht weit.
Ich hab dir mal ein uraltfred hier aus dem Forum rausgekrammt. Schau dir mal die dort gepostete harmonika.fla an.
 
Jetzt habe ich doch noch ein Problem:

Vll kann mir jemand helfen... habe jetzt die genannte Harmonika soweit modifiziert
wie ich sie brauche nur würde ich gerne etwas per rollover kontrollieren und nicht per press. klingt einfach aber ich bekomm es nicht hin:
Code:
var inhalte = new Array("inhalt1", "inhalt2", "inhalt3", "inhalt4");
var titel = new Array("Home --- bla bla hier ist noch Platz", "Portfolio ** was auch immer **", "Links: Pr0n, WareZ and stuff...", "Impressum");

var entry = new Array(inhalte.length);

var baseline = 610;
var _rotation=-90;

for (var i=0; i<entry.length; i++) {
	entry[i] = container.attachMovie("entry", "entry" + i, i);
	entry[i]._y = baseline - (entry.length - i) * (entry[i].bar._height - 1);
	entry[i]._x = -320;
	entry[i].num = i;
	entry[i].title = titel[i];
	entry[i].content = inhalte[i];
	entry[i].bar.onPress = function() {      <---------------------------------------
		showEntry(this._parent.num);
	}
}

function showEntry(n) {
	var obj = entry[n];
	obj.dy = n * (obj.base - 1);
	for (var i=0; i<n; i++) {
		entry[i].dy = i * (entry[i].base - 1);
	}
	for (var i=n + 1; i<entry.length; i++) {
		entry[i].dy = baseline - (entry.length - i) * (obj.base - 1);
	}
	this.onEnterFrame = function() {
	var done = 0;
		for (var i=0; i<entry.length; i++) {
			entry[i]._y += (entry[i].dy - entry[i]._y) / 3;
			if (Math.abs(entry[i]._y - entry[i].dy) < 1) {
				entry[i]._y = entry[i].dy;
				done ++;
			}
		}
		for (var i=0; i<entry.length - 1; i++) {
			entry[i].mask._height = entry[i + 1]._y - entry[i]._y - entry[i].base + 1;
		}
		entry[entry.length - 1].mask._height = baseline - entry[entry.length - 1]._y - entry[entry.length - 1].base + 1;
		if (done == entry.length) delete this.onEnterFrame;
	}
}

ausserdem würde ich gerne wissen wie ich die Geschwindigkeit hierbei kontrollieren kann. Wenn mir hier jemand weiter helfen könnte wäre das echt nett!
 
Im 'entry' MovieClip gibts ein onPress event, diesen tauscht du einfach gegen ein onRollOver aus.

Für eine Anpassung der Geschwindigkeit tausche den alten Codeblock gegen diese aus.
PHP:
var speed = 0.2 // Zahl zwischen 0 (lansam) bis 1 (schnell) angeben 
function showEntry(n) {
	var obj = entry[n];
	obj.dy = n * (obj.base - 1);
	for (var i=0; i<n; i++) {
		entry[i].dy = i * (entry[i].base - 1);
	}
	for (var i=n + 1; i<entry.length; i++) {
		entry[i].dy = baseline - (entry.length - i) * (obj.base - 1);
	}
	this.onEnterFrame = function() {
	var done = 0;
		for (var i=0; i<entry.length; i++) {
			entry[i]._y += (entry[i].dy - entry[i]._y) * speed;
			if (Math.abs(entry[i]._y - entry[i].dy) < 1) {
				entry[i]._y = entry[i].dy;
				done ++;
			}
		}
		for (var i=0; i<entry.length - 1; i++) {
			entry[i].mask._height = entry[i + 1]._y - entry[i]._y - entry[i].base + 1;
		}
		entry[entry.length - 1].mask._height = baseline - entry[entry.length - 1]._y - entry[entry.length - 1].base + 1;
		if (done == entry.length) delete this.onEnterFrame;
	}
}

Hier kannst du nun der speedvariable einen Wert geben.
 
Schon mal vielen Dank!

aber das mit dem Speed klappt nicht ganz, es ändert einfach nichts.
Ausserdem wollte ich noch fragen ob es Möglichkeiten gibt an dem easyease
was zu verstellen?
 
Oh Man... Fragen über Fragen , aber das sind die letzten, Versprochen :)

wie baue ich denn da noch einen MouseoverEffekt ein, also nehmen wir an ich hab einen neuen Movieclip in dem der Mousover stattfindet, wo gehört das rein?
 
aber das mit dem Speed klappt nicht ganz, es ändert einfach nichts.
Ausserdem wollte ich noch fragen ob es Möglichkeiten gibt an dem easyease
was zu verstellen?

Hast du denn auch den Codeblock ausgetauscht?
Mit der speed Variable kannst du das tempo regulieren, klappt bei mir wunderbar ;)

Versteh nicht ganz was du mir 'easyease' meinst, ich sehe dort keine Variable easyease.
Das easing wird doch auch durch den speed wert beeinflusst.

wie baue ich denn da noch einen MouseoverEffekt ein, also nehmen wir an ich hab einen neuen Movieclip in dem der Mousover stattfindet, wo gehört das rein?

Meinst du ein MouseOver im contentbereich? Hierbei wäre es wohl am einfachsten den MovieClip in eines der Inhalt Mc's zu plazieren und dann mit einen entsprechendem MouseOver Event auszustatten.
 
Hmmm....

habe den Code eingefügt und es ändert wie gesagt nichts, keine Ahnung wieso.
Mit easyease meinte ich das easing ( after effects;)).

Der mouseover soll schon auf einem der Balken statt finden so wie hier :
http://utopia.de/ . ich häng einfach mal meine fla. mit an.

Aber auf jeden fall schon mal vielen Dank, dass du dir Zeit genommen hast zu antworten :).
 

Anhänge

  • harmonika_ya.fla
    112,5 KB · Aufrufe: 54
Zurück