onClipEvent (enterFrame) {
if (_x>-15) {
_x=_x-4;
} else {
_x=500;
}
}
Wenn horizontale Position größer ist als -15, wandert das Schaf
pro Frame 4 Pixel nach rechts:
_x=_x-4;
Andernfalls wird das Schaf wieder an den rechten Rand gesetzt:
_x=500
programmierte Bewegung
Der Movieclip bewegt sich, indem der derzeitigen Position der Wert der Variablen xdir
onClipEvent (load) {
xdir = 4;
ydir = 4;
}
onClipEvent (enterFrame) {
_x = _x+xdir;
if (_x<10) {
xdir = 4;
} else if (_x>200) {
xdir = -4;
}
_y = _y+ydir;
if (_y<10) {
ydir = 4;
} else if (_y>200) {
ydir = -4;
}
}
onClipEvent (load) {
xdir = 6;
ydir = 4;
}
onClipEvent (enterFrame) {
_x = _x+xdir;
if ((_x<10) || (_x>200)) {
xdir = xdir*-1;
}
_y = _y+ydir;
if ((_y<10) || (_y>200)) {
ydir = ydir*-1;
}
}
Das Quadrat (instanz quad) läßt sich mit den Peiltasten verschieben, allerdings sollte
(_root.quad._x-_root.quad._width/2)+_width/2
Die anderen Ränder, werden dann in ähnlicher Weise definiert.
onClipEvent (load) {
xdir = 4;
ydir = 2;
}
onClipEvent (enterFrame) {
_x = _x+xdir;
if ((_x<(_root.quad._x-_root.quad._width/2)+_width/2) || (_x>(_root.quad._x+_root.quad._width/2)-_width/2)) {
xdir = xdir*-1;
}
_y = _y+ydir;
if ((_y<(_root.quad._y-_root.quad._height/2)+_height/2) || (_y>(_root.quad._y+_root.quad._height/2)-_height/2)) {
ydir = ydir*-1;
}
}
Hier geht es um die Positionierungen eines MCs mittels der Mausposition. Die beiden ersten
onClipEvent (enterFrame) {
_x=((_width/550)*(_root._xmouse))*-1;
}
Wie man sieht , haben wir oben allerdings noch kein optimales Ergebnis, denn der rechte
onClipEvent (enterFrame) {
_x = (((_width-550)/550)*(_root._xmouse))*-1+(_width/2);
}
Bei diesem MC liegt der Mittelpunkt wie
onClipEvent (enterFrame) {
_x=(((_width-550)/550)*(_root._xmouse))*-1;
}
onClipEvent (load) {
/:xziel = 72;
/:yziel = 72;
}
onClipEvent (enterFrame) {
_x = _x+(/:xziel-this._x)/6;
_y = _y+(/:yziel-this._y)/6;
}
on (rollOver) {
/:xziel = 36;
/:yziel = 108;
}
Der Filmsequenz (Quadrat aussen) wurde obenstehendes Actionscript zugewiesen.
Die jeweilige Zielposition, wird per Button vergeben, /:xziel und /:yziel. Nun kommt der Trick.
/:xziel-this._x Mit folgender Formel würde der Film die Zielposition sofort einnehmen, da der
_x+(/:xziel-this._x)/6; Der Film legt somit ein 6tel der Strecke Richtung Ziel zurück. Beim
scroll und klick
Links ist ein mc mit einem button der mittels drag movie
Der Bilder MC hat das gleiche Script, wie 2 Seiten zuor
Die 3 Positions Buttons setzen die Variable /:check auf 2,
Zum Schluss wird noch der MC Instanzname Schieber auf
onClipEvent (enterFrame) {
if (/:check==1) {
_x = (((_width-550)/550)*(_root._xmouse))*-1;
} else if (/:check==2) {
_x = _x+(/:xziel-this._x)/6;
_root.schieber._x = (_x*-1/1450)*550;
}
}
on (release) {
/:check = 2;
/:xziel = -20;
}
on (press) {
/:check = 1;
startDrag("", true, 8, 65, 542, 65);
}
on (release, releaseOutside, dragOut) {
/:check = 0;
stopDrag();
}
on (release) {
/:check = 2;
/:xziel = -725;
}
on (release) {
/:check = 2;
/:xziel = -1435;
}
Hier wird eine programmierte Bewegung mittels sinus erzeugt. Der Sinuswert einer Zahl liegt immer
*50 erzeugt einen Ausschlag von -50 zu +50 +100 versetzt die Achse.
X Position mittels if / else siehe erste Seite.
onClipEvent (enterFrame) {
_y = Math.sin(i += 0.09)*50+100;
if (_x<600) {
_x = _x+3;
} else {
_x = -50;
}
}
sinus cosinus
onClipEvent (enterFrame) {
if (z<100) {
z++;
duplicateMovieClip (this, "kugel"+z, z);
_root["kugel"+z]._y=Math.sin(e += 0.18)*50+320;
_root["kugel"+z]._x=z*7;
} else {
for (z=0; z<=100; z++) {
removeMovieClip (_root["kugel"+z]);
}
z=0;
e=0;
}
}
_y = Math.sin(i += 0.09)*50+100;
_x = Math.sin(e += 0.09)*50+xMittelpunkt;
_y = Math.cos(i += 0.09)*50+100;
_x = Math.sin(e += 0.09)*50+xMittelpunkt;
yx
Auf der linken Seite wurden für x und y die
Um eine Kreisbewegung zu erzeugen muß sin und
300400
Die Länge einer Schwingung oder Umdrehung
Andersherum bedeutet das , dass man die
Hierzu muss man nur 2*pi durch die gewünschte
a=2*math.Pi/Frames pro Umdrehung;
onClipEvent (enterFrame) {
a=2*math.Pi/_root.eingabe;
i = i+a;
_x=400-math.sin(i)*100;
_y=250-math.cos(i)*100;
}
on (release, keyPress "<Down>") {
/:rou = 16;
/:ou = 1;
}
on (keyPress "<Up>") {
/:rou = 16;
/:ou = -1;
}
on (release, keyPress "<Right>") {
/:rlr = 16;
/:lr = 1;
}
on (keyPress "<Left>") {
/:rlr = 16;
/:lr = -1;
}
rlr und rou wird pro Frame um 2 verkleinert, bis es 0 ist.
Der Wert wird zur x und y Position addiert, so dass auf
onClipEvent (enterFrame) {
if (/:rlr>0) {
/:rlr = /:rlr-2;
}
this._x=_x+/:rlr*/:lr;
if (/:rou>0) {
/:rou = /:rou-2;
}
this._y=_y+/:rou*/:ou;
}
Bewegung per Pfreiltasten
onClipEvent (enterFrame) {
if ((Key.isDown(Key.RIGHT))&&this._x<500) {
this._x = _x+/:sspeed;
} else if (key.isDown(Key.LEFT)&&this._x>40) {
this._x = _x-/:sspeed;
}
if ((Key.isDown(Key.DOWN))&&this._y<370) {
this._y = _y+/:sspeed;
} else if (key.isDown(Key.UP)&&this._y>40) {
this._y = _y-/:sspeed;
}
}
onClipEvent (load) {
/:sspeed = 10;
}
Ab Flash MX kann man auch das key Objekt für Tastatur befehle verwenden
Das Schiff läßt sich mit den Pfeiltasten steuern.
Man kann sich auch die beiden zuvor erklärten Möglicheiten miteinander kombinieren. Lade die folgenden Beispiefilm