MovieClip zum Beben bringen?

scrotum

Erfahrenes Mitglied
Hallo zusammen

Hat jemand eine Idee, wie ich ein MovieClip am Besten zum Beben bringe?

Konkret möchte ich ein Icon haben, dass bei Mousesberührung zitteret, also bebt.

Kann mir da jemand helfen? Danke schon im voraus.
 
Hallo!

dass bei Mousesberührung zitteret

Hast du es schon mal mit "zünftig verschrecke" probiert? ;).

Scherz beiseite. Folgendes Skript stellt dir zwei Funktionen zur Verfügung, die erste startet das Zittern auf dem im Parameter angegebenen MovieClip mit der Stärke, die du im zweiten Parameter angibst. Analog dazu die Funktion, die das Zittern wieder stoppt.

Code:
function startTremble (mc, strength) {
	mc.initx = mc._x;
	mc.inity = mc._y;
	mc.strength = strength;
	
	mc.onEnterFrame = function () {
		var x = Math.random()*this.strength- Math.random()*(this.strength*2);
		var y = Math.random()*this.strength- Math.random()*(this.strength*2);
		
		this._x = this.initx+x;
		this._y = this.inity+y;
	}
	
}

function stopTremble (mc) {
	delete mc.onEnterFrame;
	delete mc.initx, mc.inity, mc.strength;
}

gruss
 
Wow, das ging schlecht und sieht vielversprechend aus, leider funktioniert es nicht bei mir, was mach ich falsch? :

PHP:
function startTremble (mc, strength) {
	mc.initx = mc._x;
	mc.inity = mc._y;
	mc.strength = strength;
	
	mc.onEnterFrame = function () {
		var x = Math.random()*this.strength- Math.random()*(this.strength*2);
		var y = Math.random()*this.strength- Math.random()*(this.strength*2);
		
		this._x = this.initx+x;
		this._y = this.inity+y;
	}	
}


function stopTremble (mc) {
	delete mc.onEnterFrame;
	delete mc.initx, mc.inity, mc.strength;
}




_root.viereck_mc.onRollOver = function() {
	startTremble (_root.viereck_mc, 5);
}


_root.viereck_mc.onRollOut = function() {
	function stopTremble (_root.viereck_mc);
}


Er sagt in der zweit letzten Zeile:
**Error** Scene=Scene 1, layer=Layer 2, frame=1:Line 30: ')' or ',' expected
function stopTremble (_root.viereck_mc);

Total ActionScript Errors: 1 Reported Errors: 1
 
Hi,

also bei mir funktioniert es einwandfrei ;)

probier mal den MC ohne _root. zu benennen.


mfg ZiRaG
 
Hallo,

du hast bloss einen kleinen Denkfehler gemacht. Die Funktionen liegen auf der Hauptzeitleiste und müssen demenstprechend angesprochen werden. An der Syntax des Parameters ist an und für sich nichts falsch, es wäre aber naheliegender/einfacher, das Objekt bei "seinem" onRelease "sich selber" übergeben zu lassen ==> mit this ;):

Code:
viereck_mc.onRollOver = function() {
    _root.startTremble (this, 5);
}


viereck_mc.onRollOut = function() {
    _root.stopTremble (this); 
}

Ausserdem hattest du bei der zweiten onRelease-Funktion einen Syntaxfehler in Form eines überflüssigen "function".

gruss
 
Zuletzt bearbeitet:
Ah genau das function habe ich zuviel gehabt. Und stimmt this ist wohl schöner :-), es wäre aber auch so gegangen. Der Fehler lag an dem zuvielen wort function beim Aufruf.

Vielen Dank. Super schnelle und super gute Antwort :-).
 
Zurück