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
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
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
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
_root["ball"+u]
Dadurch werden alle MCs mit folgenden Instanznamennam per Trefferabfrage
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
Stattdessen hat man in jedem MC die Variable hit. Um beispielsweise die Variable hit
_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
Nun folgt die bekannte for Schleife. In der for Schleife ist die
if ((i)!=nummer) {} Ist die Bedingung erfüllt, wird hittest
if (this.hitTest("_root.g"+i)) {} ist auch das erfüllt, folgen die
Das Verschieben der MCs erfolgt über eine Schaltfläche, die
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
Die Filmsequenz stoppt im ersten Frame, dort befindet sich ein Button der auf
Hier gehts zu weiteren Infos zu Thema drag movie clip.