|
MovieClip.prototype.tweenTo= function (x,y,steps) {
..
}
In dem Skript setzten wir zunächst als einige Variablen im MC.this.onEnterFrame= function () {
...
}
In dieser Funktion prüfen wir nun bei jedem Aufruf ob noch Schritte
verbleiben.
if (this._steps){
...
}
else {
...
}
Wenn _steps 0 ist wird dieser Ausdruck "false" und der else Zweig
wird ausgeführt.delete this._xstep;
delete this._ystep;
delete this._steps;
this.onEnterFrame=function () {}
Im If Zweig müssen wir jetzt nur noch den MC einen Schritt weiter
setzten
this._x+=this._xstep; this._y+=this._ystep;und _steps um 1 runterzählen
this._steps--;Hier das fertige Skript:
MovieClip.prototype.tweenTo= function (x,y,steps) {
// Die internen Variablen setzten
// _xstep ist der Wert, um den der MC pro Schritt in x-Richtung versetzt wird
this._xstep=(Number(x)-this._x)/Number(steps);
// _ystep ist der Wert, um den der MC pro Schritt in y-Richtung versetzt wird
this._ystep=(Number(y)-this._y)/Number(steps);
// Steps ist die Anzahl der verbleibenden Schritte
this._steps=steps;
this.onEnterFrame=function () {
// Wenn Schritte über sind (-> _steps > 0 und damit true) setzen wir den MC eine Schritt weiter
if (this._steps) {
// MovieClip einen Schritt weiter setzen
this._x+=this._xstep;
this._y+=this._ystep;
// Steps runterzählen
this._steps--;
}
else {
// Nicht mehr gebrauchte Variablen löschen
delete this._xstep;
delete this._ystep;
delete this._steps;
// Das ClipEvent wieder löschen
this.onEnterFrame=function () {}
}
}
}
}
Aufgerufen wird das ganze mit
movieClipName.tweenTo(100,400,30);
So, sollte hoffentlich alles klar geworden sein...
Gruß, Jens