3D Animation via Buttons steuern?!

IlllyMilly

Mitglied
Nabend alle zusammen,

hab mir in Cinema eine Kristallanimation zusammengebastelt und sie als .avi datei abgespeichert.

Wollte sie dann ins Flash einbinden als Movieclip, was auch funktioniert hat. Allerdings kam ein Hinweis, wo stand:

"Der Codec aus dem Ihre Filmdatei besteht, erlaubt keine weitere Bearbeitung"

Komischerweise führt es dazu, dass ich, wenn ich es als Movieclip importiere, es mir nicht möglich ist, die Keys, mit Schlüsselbildern zu versehen,... es verändert die komplette Animation, und verunstaltet es.
hab dann ein 2. layer zugefügt, und das ganze umgangen...

Naja.. mein 2. Problem ist, dass ich auf jeden der Kristalle ein Button verlegt hab, der einen Alphakanal hat, so dass er unsichtbar ist. Habe dann versucht die Buttons mit einem ""press" zu versehen, so dass wenn ich mit der Maus drauf drücke, z.b. Keyframe 1-15 abgespielt werden soll.

Ich weiss nicht wieso, aber es reagiert auf gar nix. Die Bilder werden nicht flüssig abgespielt, sondern Ruckartig und die buttons reagieren manchmal nicht auf die "press" funktion...

Mein Movieclip liegt auf'm 2. Bild im Hauptfenster und hat den Instanznamen "animation"... Meinem Button hab ich folgenden AS zugewiesen.

Code:
on (press) {
this.animation.gotoAndPlay(1);
//Der Kristall fährt aus dem Boden raus ein stop(); ist im Movieclip auf dem 10. Bild gesetzt, damit er auch dann aufhört....
}

on (press) {
this.animation.gotoAndPlay(11);
}//hier will ich dass er beim erneuten "press", ab Bild 11 anfängt und bis bild 16 durchläuft, weil dort wieder ein stop(); gesetzt wurde...


wie gesagt, die animation reagiert auf gar nix... es ruckelt dermaßen... und es ist absolut nicht schön anzusehen...

Ich uppe mal einfach die .fla datei... ihr könnts ja euch anschauen...

Würde mich freuen, wenn einer eine Lösung zu diesem Problem hätte.

Lieben Gruß...

die Illy

Da die Datei über 200kB ist hier der
Downloadlink: .fla datei
 
Hallo,

wenn du deine onPress-Funktion natürlich postwendend wieder überschreibst, findet immer nur die zweite Animation statt.

1. Setze ein stop() auf das erste Frame der Animation.


2. Ersetze den Code auf deiner Schaltfläche hiermit:
Code:
on (press) {
	if (!saman_pressed) {
		animation.gotoAndPlay(2);
		saman_pressed = true;
	} else {
		animation.gotoAndPlay(11);
		saman_pressed = false;
	}
}

gruss
 
hi luke,

vielen Dank, anfangs hats wunderbar geklappt, aber dann traten schon die neuen probleme auf...

ich lade nochmal die aktuelle version hoch.. vielleicht findest du ja zeit sie dir anzuschauen.

Wenn ich jetzt auf einen der mittleren Kristalle zu erst drücke, funktioniert die Animation nicht mehr...
Hab sogar den AS-Code extra auf die anderen ausgerichtet... Sprich, andere Instanznamen verwendet, und zugeordnet... Vom Code müsste eigentlich alles in Ordnung sein.

Weißt du woran es liegen könnte?

Im Prinzip will ich ja nur, dass sobald ich irgendein Kristall drücke, er rausschießt. Sobald ich jetzt aber hier rumspringe und verschiedene Kristalle drücke, funktioniert absolut nix.

Sie springen zwar raus, aber völlig Ruckartig.. und danach Reagieren sie gar nicht mehr. Dabei hab ich ja dein Code so übernommen wie du es mir gegeben hast.


Hier nochmal die überarbeitete Version..
Download

Gruß... Die Illy

PS: danke nochmals für deine mühe..
 
Zuletzt bearbeitet:
Hallo,

folgendes Skript löst das Problem, indem der aktive Kristall erst zwischengespeichert wird. Wenn nun ein anderer angewählt wird, wird der Zwischengespeicherte erst zurückgebildet, bevor der neue ausgefahren wird. Dieses Skript legst du auf das zweite Aktionsframe deines Films. Ausserdem musst du alle Buttons in MovieClips umändern. Dafür musst du das Verhalten des Bibliothekssymbol, sowie auch das Verhalten der Instanz auf der Bühne anpassen. Hier das Skript:

Code:
saman.anschalten = arash.anschalten = illy.anschalten = gallery.anschalten = gb.anschalten = function () {
	
	this._parent.active.abschalten();
	var i: Number = 5;
	this.onEnterFrame = function () {
		if (i-- < 0) {
			this._parent.active = this;
			this._parent.animation.gotoAndPlay(this.startFrame);
			delete this.onEnterFrame;
		}
	}
}

saman.abschalten = arash.abschalten = illy.abschalten = gallery.abschalten = gb.abschalten = function () {
	this._parent.animation.gotoAndPlay(this.endFrame); 
}

saman.startFrame = 2;
saman.endFrame = 12;

arash.startFrame = 17;
arash.endFrame = 27;

illy.startFrame = 32;
illy.endFrame = 42;

gallery.startFrame = 47;
gallery.endFrame = 57;

gb.startFrame = 62;
gb.endFrame = 72;

stop();

Auf alle Buttons legst du nun noch dieses Skript:
Code:
on (release) {
	this.anschalten();
}

gruss
 
Lieber Luke,

ich danke dir Recht herzlich für deine Hilfe, hat alles super geklappt und bin ein großes stück weiter mit meiner Arbeit.

Hut ab, das du auch den Code schön übersichtlich und verständlich gehalten hast.

Hochachtungsvoll..

Die Illy
 
Zurück