Maus über ein Movieclip

Hi,

meines Wissens nicht. Du musst schon jeden MovieClip einzeln testen; entweder mit hitTest() oder indem Du Handler auf die Clips setzt:
PHP:
this.onRollOver = function() {
    trace("Maus über mir...");
}

this.onRollOut = this.onDragOut = function() {
    trace("Weg ist die Maus");

Gruß

P.S.: Du kannst Dir eine solche Funktion aber selbst schreiben:
PHP:
this.onEnterFrame = function() {
	for (var i in this) {
		if (typeof(eval(i)) == "movieclip") {
			if (eval(i).hitTest(_xmouse, _ymouse, true)) {
				trace("über: "+eval(i)._name);
			}
		}
	}
}
.
 
Zuletzt bearbeitet:
Danke Datic,

da lässt sich doch was machen. Wäre mir sonst ein wenig viel gewesen, alle Weltländern mit Code zu versorgen. Natürlich stellt sich die Frage, nach Performance Einbußen. Bei über 250 Instancen auf der Bühne wird der Array immer wieder durchlaufen. Werde das gleich mal testen.

Gruss
René
 
... eben deshalb würde ich es eher über Handler machen. Wenn Deine 250 Clips noch keine Nativen rollOver- und rollOff-Handler haben, kannst Du das auch (einmalig) in einem Abwasch erledigen:
PHP:
var clipWithMouse = null;

for (var i in this) {
    if (typeof(eval(i)) == "movieclip") {
        eval(i).onRollOver = function() {
            _parent.mouseEntered(this);
        }
        eval(i).onRollOut = eval(i).onDragOut = function() {
            _parent.mouseLeft(this);
        }
    }
}
 

function mouseEntered(obj) {
    clipWithMouse = obj;
}

function mouseLeft(obj) {
    if (clipWithMouse == obj) clipWithMouse = null;
}

function whoHasMouse() {
    return clipWithMouse;
}
Das müsste bei Verdeckungen natürlich noch umgeschrieben werden, da Du so immer nur einen Clip geliefert bekommst.

Gruß
.
 
hehe, so ähnlich habe ich das jetzt auch gelöst. Zum Programmstart erstmal allen MCs auf der Bühne ihre Fktionen zugewiesen, ein paar Variablen gesetzt und fertig :)

Nochmal danke für den Denkanstoss!

Gruss
René
 
Zurück