(Newbie): Frage zu Animation (Web)

axe van ecks

Erfahrenes Mitglied
Hi,

sorry aber mir ist leider kein besserer Titel eingefallen...

also

hier findet ihr ne Flash-Vorschau
von dem was ich machen will, nämlich 4 Farbfelder und wenn man auf eins mit der Maus drüber geht, dass das dann größer wird und der Text erscheint. Mein Problem ist, dass ich dazu zu geringe Flashkenntisse habe. Wie könnte man sowas realisieren?

cu
 
Hi,

du solltest dich mit MovieClips und deren Funktionen bekannt machen

Konvertiere die einzelnen Flächen in MC und gib ihnen einen Instanznamen.
Dann solltest auf den MC einen on(press) machen der dann z.B einen _root.mc.play()
ausführt.

So kannst du den einzelnen MC Aktionen zuweisen und deren Animationen stopen bzw. starten.

Gruß Pullermann
 
danke für den Tipp

ich habs ausprobiert und das würde schon gut passen, aber ich habe ein Problem, da ich gerne 4 verschiedene "entry"-MCs hätte statt immer den gleichen und da komme ich nicht weiter.
 
Hi,

wenn die Inhalts-MCs unterschiedlich aussehen sollen, dann erstell Dir doch einfach vier Stück und instanziere nicht immer den gleichen, sondern den gewünschten.

Ich werde morgen mal schauen, ob ich Dir dafür ein Beispiel fertig machen kann.

Gruß
.
 
Hi,

.. da das einzige, was die "entry"-MCs optisch auszeichnet, die Instanz des MCs "bar" ist (der lachsfarbene Balken, der sich anklicken lässt), erstelle Dir einfach vier Versionenen dieses Balkens in der Bibliothek und benenne sie fortlaufend (bar1, bar2 ... bar4) (Exportfreigabe für AS nicht vergessen!).

Nun kannst Du auf der Hauptzeitleiste jedem "entry" eine Nummer zuweisen:
Code:
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].num = i;
	entry[i].tbar = i + 1;
	entry[i].title = titel[i];
	entry[i].content = inhalte[i];
}
, diese Nummer im MC "entry" abfragen und ggf. den Balken austauschen:
Code:
this.onEnterFrame = function() {
	if (content != undefined && title != undefined) {
		ttext.text = title;
		ct.attachMovie(content, "content", 1);
		if (tbar != undefined) {
			bar = this.attachMovie("bar" + tbar, "bar", bar.getDepth());
		}
		bar.onPress = function() {
			_root.showEntry(num);
		}
		delete this.onEnterFrame;
	}
}
(den onPress-Handler habe ich von _root in "entry" verlegt, da der MC "bar" ja überschrieben wird)

Gruß
.
 

Anhänge

  • harmonika3.zip
    34,5 KB · Aufrufe: 26
Ich hab doch noch eine Frage.

Wieso vvird eine Schaltfläche, wenn ich sie in den Movieclip "inhaltx" lege z.B. nicht angezeigt und wie kann ich in den MC z.B. ne Animation einbinden z.B. einfaden von Inhalt? Wenn ich die Animation in einer Ebene in den MC lege spielt er sie ab und wiederholt sie immer wieder, wenn ich dann am Ende "stop();" sage wird sie gar nicht abgespielt, das letzte Bild der Animation wird stattdessen angezeigt.
 
Hi,

MovieClips und Animationen in den einzelnen Inhalten sind ja von Anfang an vorhanden (bloß nicht sichtbar). Deine Animation wird also unsichtbar abgespielt und hat ihren letzten Frame schon erreicht, wenn der Benutzer auf den Inhalt klickt.

Um Animationen erst dann zu starten, wenn die enstprechende Seite geöffnet wird, musst Du ihn mit einer Funktion beim Öffnen starten. Halte die Animation zuerst in ihren ersten Frame an, und beginne das Abspielen mit einem Funktionsaufruf:
PHP:
// Hauptzeitleiste. Die Funktion "showEntry"
// beginnt dann so:
function showEntry(n) {
	var obj = entry[n];
	obj.dy = n * (obj.base - 1);
	obj.ct.content.go();
        // die Funktion "go" startet die Animation
In den einzelnen Inhals-MCs kannst Du nun über die Funktion "go" Deine Animationen starten:
PHP:
// Code z.B. in "inhalt1":
function go() {
    mein_mc.gotoAndPlay(2);
}

Gruß
.
 

Neue Beiträge

Zurück