this.hitTest(_root. _xmouse,_root._ymouse, true);

Bewege die Maus auf das Männchen.

hitTest fragt x und y Position ab, die in diesem Falle der Mausposition entspricht.

_root ist ähnlich _level0 es wird die oberste Filmebene also der Hauptfilm angesprochen.

true bedeutet, daß man das Männeken wirklich berühren muß und nicht nur den

unsichtbaren Begrenzungsrahmen, der jedes Objekt umgrenzt.

Auf der nächsten Seite wird klar, was damit gemeint ist.

eineFilmsequenz.hitTest(x, y, formmarkierer);

onClipEvent (enterFrame) {

   if (this.hitTest(_root. _xmouse,_root._ymouse, true)) {

       /:x = "Treffer";

   }

}

this.hitTest(_root. _xmouse,_root._ymouse, false);

Der einzige Unterschied, ist hier das false, welches die Auswirkung hat, daß der

unsichtbare Begrenzungsrahmen  um das Objekt (bounding box) schon auf die Berührung mit der Maus reagiert.

Anstatt true kann man auch den Wert 1 angeben,

anstatt false den Wert 0.

onClipEvent (enterFrame) {

   if (this.hitTest(_root. _xmouse,_root._ymouse, false)) {

       /:x = "Treffer";

   }

}

this.hitTest(_root.ball)

Hier wird jetzt anstatt x und y der Instanzname einer anderen Filmsequenz angegeben.

Allerdings ist hier wieder der unsichtbare rechteckige Begrenzungsrahmen (bounding box) ausschlaggebend, anders gehts nur mit x y Koordinaten.

onClipEvent (enterFrame) {

   this._x=_x+10;

   if (this.hitTest(_root.ball)) {

       /:x = "Treffer";

   }

}

Bewege die Maus auf das Männchen und klicke.

Hier noch ein praktisches Beispiel für ein "Totmachen-Spiel".  Das Männeken hat nun

den Event Handler MouseDown bekommen und durch this.goto... wird die tödliche

Explosion abgespielt.

Das Schlüsselwort this bedeutet, daß die Befehle sich auf das Objekt beziehen, von

dem aus sie aufgerufen werden.

onClipEvent (mouseDown) {

   if (this.hitTest(_root._xmouse, _root._ymouse, true)) {        /:x = "Treffer";

       this.gotoAndPlay(1);

   }

}

Diese Filmsequenz kann man mit gedrückter Maustaste verschieben und dann fallen lassen. Wenn der Mittelpunkt des MCs (rotes Kreuz) den  Boden (Instanz xyz) berührt, wird das erkannt. Im MC befindet sich ein Button, der die Drag Action startet und stoppt, (siehe Tipp drag Movie).

onClipEvent (enterFrame) {

if (_root.xyz.hitTest(this._x,this._y,1)) {

_root.check = 1;

} else {

_root.check = 0;

if (losgelassen==1) {

this._y=this._y+5;

}

}

}

on (press) {

losgelassen = 0;

startDrag("");

}

on (release) {

losgelassen = 1;

stopDrag();

}

onClipEvent (enterFrame) {

   for (u=0; u<4; u++) {

       if (this.hitTest( _root["ball"+u])) {

           /:hitglobal=/:hitglobal+1;

       }

   }

}

In der for Schleife werden soviel Zahlen generiert, wie MCs vorhanden sind, die abgeschossen werden können. In diesem Fall von 0 bis 3. In der For Schleife ist dann die  if hitTest Abfrage eingeschlossen. Das Besondere ist die Schreibweise des Ziels:

_root["ball"+u]

Dadurch werden alle MCs  mit folgenden Instanznamennam per Trefferabfrage angesprochen, egal ob man die Instanznamen direkt zugewiesen hat, oder ob es sich hierbei um duplizierte Filmsequenzen handelt.

ball0, ball1, ball2 und ball3

Näheres zum Thema for Schleife in meinem if else Tip.

Hier geht es darum, dass für jeden einzelnen MC die Treffer gezählt werden. Der Trick ist hierbei, dass man hier mal auf die globale Schreibweise einer Variable verzichtet /:hit

Stattdessen hat man in jedem MC die Variable hit. Um beispielsweise die Variable hit von ball3 anzusprechen sähe die Schreibweise so aus

_root.ball3.hit

Statt _root.ball3 schreiben wir in unserer for Schleife _root["ball"+u], wie gehabt.

Genauso können wir nun die Variablen der einzelnen MCs ansprechen

_root["ball"+u].hit

onClipEvent (load) {

heist = _name;

nummer = heist.substr(1, 1);

}

onClipEvent (enterFrame) {

for (i=1; i<10; i++) {

if ((i)!=nummer) {

if (this.hitTest("_root.g"+i)) {

_root.anzeige.gotoAndPlay(2);

play();

}

}

}

}

Die MCs heißen a1, a2, a3....etc. In der bekannten For Schleife wird abgefragt, ob eines der MCs berührt wird. Da der MC welcher abfragt, aber auch in der For Schleife vorkommt, wäre die hit Test Bedingung ständig erfüllt. Also muß eine if Struktur her, die den eigenen Namen ausschließt. Dazu wird onLoad der eigene Instanzname in der Variablen heist abgelegt. Daraus wird der zweite Buchstabe per substr(0,1) in der Variablen nummer gespeichert. Mehr zu substr() in meinem Tipp: Schreibmaschinen Effekt.

Nun folgt die bekannte for Schleife. In der for Schleife ist die if-Struktur eingefügt, mit der Bedinung nummer (also die Zahl des eigenen Namens) soll ungleich i sein.

if ((i)!=nummer) {} Ist die Bedingung erfüllt, wird hittest abgefragt,

if (this.hitTest("_root.g"+i)) {} ist auch das erfüllt, folgen die beiden Actions, die eigene Zeitleiste abzuspielen play() und im MC  anzeige das 2te Bild abzuspielen _root.anzeigegotoAndPlay(2).

Das Verschieben der MCs erfolgt über eine Schaltfläche, die im MC eingefügt ist, mit den Actions start und stop drag. Mehr dazu in meinem Tipp. Drag Movieclip

on (release) {

if (i<10) {

i = i+1;

/:anzahl=i;

attachMovie("kerl", "g"+i, i);

_root["g"+i]._x = random(500)+20;

_root["g"+i].laufen(i);

}

}

MovieClip.prototype.laufen = function(nummer) { this.onEnterFrame = function() { this._rotation=0; // alle hittesten/// die Anzahl der Instanzen ist hier höchstens 10 for (i=1; ionClipEvent (mouseDown) {

   if (this.hitTest(_root._xmouse, _root._ymouse, true))

{        startDrag ("", true);

   }

}

onClipEvent (mouseUp) {

   if (this.hitTest(_root._xmouse, _root._ymouse, true))

{        stopDrag ();

   }

}

Hier wird hit Test mal für eine drag Aktion eingesetzt, normalerweise macht man das mit einer Schaltfläche, aber die wird hier für eine Doppelklick Aktion benutzt.

Die Filmsequenz stoppt im ersten Frame, dort befindet sich ein Button der auf Mausklick die Filmsequenz weiterlaufen läßt. In den nächsten 5 Frames hat der gleiche Button die Aktion zum Wow Text zu gehen. Beide Buttons haben den Event Handler press. Im Frame 5 geht es wieder zum ersten Frame der Filmsequenz, wo sie wieder stoppt. Das führt dazu, daß die "Wow Aktion" nur aufgerufen wird wenn man 2 mal hintereinander klickt, also Doppelklick. Hier könnte man natürlich jede andere Aktion einbinden.

Hier gehts zu weiteren Infos zu Thema drag movie clip.