Augen verfolgen Maus! Wie geht das? [MX]

ComicBookGuy

Grünschnabel
Würd gerne mal wissen, wie ich das hinbekomme, dass die Augen wie bei Jeedoubleu hier immer auf die maus schauen.
Bis auf die Funktion mit dem "Verfolgen" bin ich im Prinzip auch schon fertig.hier .
 
Hi.
Im Prinzip wird da glaube ich nur der Abstand zwischen Mausposition und dem Mittelpunkt der Bühne abgefragt, und dann die "Pupille", vom Mittelpunkt des Auges aus, auf einen Bruchteil des Abstandes gelegt.

Scriptmäßig ist das etwas in der Art:

PHP:
diffx = Stage.width/2 - _xmouse
diffy = Stage.height/2 - _ymouse

pupille._x = "augenmittelpunkt X" + diffx/5 //die 5 legt den Radius fest, in dem sich die Pupille bewegt
pupille._y = "augenmittelpunkt Y" + diffy/5

Das ganze eben in einem onEnterFrame Event.


sancho
 
Ok. So ganz verstehe ich das noch nicht (weil ich scriptmäßig ein völliger Anfänger bin). Aber auf jeden Fall schon mal "Danke".
Ich lass mir das alles erstmal durch den Kopf gehen...
 
Cool. Hät nicht gedacht, dass das in 5 Zeilen geht.
Ein Kollege von mir hat sowas in Delphi gemacht und meinte er hätte das ohne sein Matheknowhow nicht auf die Reihe gekriegt...

Vielen Dank.
 
Hi

ich versuche auch grad so ein auge zu basteln und hab den Code bei mir eingefügt und natürlicha cuh angepasst aber beim testen kommt immer:


Szene=Szene 1, Ebene=Ebene 1, Bild=1: Zeile 1: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
augel.setMask(maske)

Szene=Szene 1, Ebene=Ebene 1, Bild=1: Zeile 2: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
augel.AugeUntergrund.onEnterFrame = function(bla) {



kann mit der fehlermeldung nix anfangen.



mein Code sieht wie folgt aus:
Code:
augel.setMask(maske)
augel.AugeUntergrund.onEnterFrame = function() {
	diffx = _root._xmouse - auge._x 
	diffy =  _root._ymouse - auge._y 

	this._x = diffx/10 
	this._y = diffy/10
}
 
Hi,

Du darfst diesen Code nicht auf eine Objektinstanz legen, sondern direkt auf die Zeitleiste.

Gruß

P.S.: Im übrigen geht sowas auch prima mit Winkelberechnungen (siehe Anhang). ;)
.
 

Anhänge

  • lampe.zip
    7,6 KB · Aufrufe: 222
jut also das teil läuft. wollte die .swf jetzt aber ne Html tabelle einbauen da hab ich flogenden "denk fehler" von mir festgestellt. die augen bewegen sich ja nur wenn man mit der maus auf dem Flash Film ist. wie kann ich bewirken, dass die messung der Maus Position auch außerhalb des Flashfilms also über dem gesamten Monitor erfolgt?
 
Gar nicht.

... es sei denn, Du legst den Flashfilm über die ganze Seite an (mit wmode="opaque" kannst Du ihn in den meisten Browsern auch im Hintergrund anzeigen lassen).

Vielleicht gibts auch eine Methode mit JS und Flashplayermethoden - aber das dürfte eine ziemliche Friemelei werden, da Du die jeweilige absolute Position des Flashfilms auf der Seite in Relation zur Mausposition kennen musst - und da fängt es schon an mit der Browserkompatiblität (Stichwort: offsetX, clientX etc.).

Gruß

EDIT: Hier ein Beispiel, das im IE und FF läuft, wenn sich der Flashfilm in einem DIV mit absoluter Position in Pixeln befindet:
HTML:
function traceme(evt) {
	var obj = document.getElementById("myflash");
	var ox = parseInt(obj.style.left);
	var oy = parseInt(obj.style.top);
	var mx = evt.clientX;
	var my = evt.clientY;
	var dx = mx - ox;
	var dy = my - oy;
	window.status = dx + " : " + dy;
	// An Flash übergeben
}
</script>
die Variablen dx und dy können mit Flashplayermethoden an die SWF-Datei übergeben werden.
.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück