Mausverfolgung mit Richtungswechsel

calledmarcel

Grünschnabel
Moin moin!

Arbeite zurzeit an einer Homepage für eine Mediendesign Firma. Mein Chef meinte ich könnte mich ja mit flash ein bisschen daran versuchen. Dabei soll ein flatternder Vogel der Maus folgen. Diesen Teil hab ich soweit schon fertig. Jetzt der Teil der mir noch unklar ist: Wenn die Maus nach rechts geht soll der Vogel auch nach rechts gucken und umgekehrt. Allerdings nur Horizontal, das heißt eigtl. nur spiegeln. Kann mir da jemand weiterhelfen?
 
Hi,

das dürfte in etwa folgendes sein:
Code:
var ml = new Object();

ml.onMouseMove = function() {
	var dx = _xmouse - ox;
	ox = _xmouse;
	vogel._xscale = (dx > 0)? 100 : -100;
}

Mouse.addListener(ml);

var ox = _xmouse;

Gruß
.
 
Mhh also so ganz funktioniert es noch nicht! Hab den Vogel jetzt mal anders gespielt. Allerdings fliegt er beim spiegeln in die falsche Richtung. Der Code sieht folgendermaßen aus:

onClipEvent (enterFrame) {
if(_xmouse < _root.xy){
this._xscale = this._xscale*(-1);
_x = _xmouse/50;
_y = _ymouse/50;
}

else{
this._xscale = this._xscale;
_x = _x+_xmouse/50;
_y = _y+_ymouse/50;
}
_root.xy = _xmouse;
}

Vielleicht kann mir ja noch mal jemand weiterhelfen. Hier noch mal die .fla Datei

Anhang anzeigen Vogel2.fla
 
Hi,

if(_xmouse < _root.xy){
Du solltest _root._xmouse (auch beim Speichern in "xy" verwenden, da sonst die Mausposition relativ zum Vogel verwendet wird.

this._xscale = this._xscale*(-1);
Damit kehrst Du die Richtung immer um, wenn sich die Maus nach links bewegt.. Das dürfte lediglich in einem Zappeln des MC resultieren, nicht aber in einem Richtungswechsel in Abhängigkeit der Mausbewegung.

Gruß
.
 
Hallo,

justmy2cents: Hier ein Code. Leg den in ein Schlüsselbild im Hauptverzeichnis und lösch den bisherigen Code.

Code:
richtung = "rechts";
vogel.onEnterFrame = function() {
	if (Math.sqrt(Math.abs(_root._xmouse-_root.vogel._x)^2
				+Math.abs(_root._ymouse-_root.vogel._y)^2)<40) {
		if ((_root._xmouse+70)<_root.vogel._x) {
			// Maus ist weiter links als der Vogel
			if (_root.richtung == "rechts") {
				// Prüfen wohin der Vogel guckt
				_root.vogel._xscale = _root.vogel._xscale*(-1);
				_root.richtung = "links";
			}
			_root.vogel._x -= (_root.vogel._x -(_root._xmouse))/40;
		} else if ((_root._xmouse-70)>_root.vogel._x) {
			// Maus ist rechts vom Vogel
			if (_root.richtung == "links") {
				_root.vogel._xscale = _root.vogel._xscale*(-1);
				_root.richtung = "rechts";
			}
			_root.vogel._x += ((_root._xmouse)-_root.vogel._x)/40;
		}
		if ((_root._ymouse+40)>_root.vogel._y && (_root._ymouse+60)>_root.vogel._y) {
			_root.vogel._y -= (_root.vogel._y-(_root._ymouse))/40;
		} else if((_root._ymouse-40)<_root.vogel._y && (_root._ymouse-60)<_root.vogel._y) {
			_root.vogel._y += ((_root._ymouse)-_root.vogel._y)/40;
		}
	}
};

/Edit: Ach ja, den MC mit dem Vogel drin solltest du noch "vogel" nennen.
Bis dann
B.
 
Danke Jungs!

Werds morgen auf der Arbeit mal ausprobieren. Bin ja auch noch kein Crack was Flash angeht aber ich arbeite mit wachsender Begeisterung damit. Das nächste wird dann wohl ne Homepage, zumindest im Header Navbar und ein paar Animationen. Falls ich da nicht weiter komme, weiß ich wen ich fragen kann ;)

Gruß, marcel
 
Zurück