Hallo,
ich bin es schon wieder
Irgendjemand hat mal ein Script hier im Forum gestellt, womit mal MCs bewegen kann (ich habe die Funktion unten angehangen).
So lautet die Funktion:
Aufruf:
Nun möchte ich nicht jeden "Schritt" einzeln aufzählen (MT1,....) sondern in einer For-Schleife dynamisch vorgehen. Ich habe mir dazu folgendes ausgedacht:
_root["feld"+i]_x bzw. _y sind die koordinaten, wo er das MC hinbewegen soll.
Wenn ich ein trace(...) mache, liefert er auch für jeden Schritt die richtigen Werte aus.
Leider tritt aber nur eine Bewegung (und zwar die zum letzten Schritt) ein.
Woran könnte das liegen?
Danke im Voraus!
ich bin es schon wieder
Irgendjemand hat mal ein Script hier im Forum gestellt, womit mal MCs bewegen kann (ich habe die Funktion unten angehangen).
So lautet die Funktion:
Code:
function moveTo( mc, x, y, iID ) {
clearInterval( this[ "MT" + iID ] );
speed = 0.05;
delete mc.onEnterFrame;
mc.xAim = x;
mc.yAim = y;
mc.onEnterFrame = function()
{
this.diffX = Math.abs(this._x-this.xAim)*speed;
this.diffY = Math.abs(this._y-this.yAim)*speed;
if (this._x>this.xAim)
{
this._x -= this.diffX;
}
else if (this._x<this.xAim)
{
this._x += this.diffX;
}
if (this._y>this.yAim)
{
this._y -= this.diffY;
}
else if (this._y<this.yAim)
{
this._y += this.diffY;
}
if (this.diffX<0.1 && this.diffY<0.1)
{
this._x = this.xAim;
this._y = this.yAim;
delete this.onEnterFrame;
}
};
}
Aufruf:
Code:
// Zeitabhängiger Aufruf ----------------------------------------------------
button1.onRelease = function()
{
//IntervalID iID-Pfad, function, Zeit, mc, x, y, iID
MT0 = setInterval( _root, "moveTo", 200, kreis, 300, 300, 0);
MT1 = setInterval( _root, "moveTo", 700, kreis, 50, 100, 1);
MT2 = setInterval( _root, "moveTo", 1200, kreis, 600, 300, 2);
MT3 = setInterval( _root, "moveTo", 1800, kreis, 50, 400, 3);
MT4 = setInterval( _root, "moveTo", 2000, kreis, 150, 150, 4);
}
Nun möchte ich nicht jeden "Schritt" einzeln aufzählen (MT1,....) sondern in einer For-Schleife dynamisch vorgehen. Ich habe mir dazu folgendes ausgedacht:
Code:
button1.onRelease = function() {
i=4; out = 200;
for(momentpos=0; momentpos <= i; momentpos++) {
_root[ "MT" + i ] = setInterval( _root, "moveTo", out, puppe1, _root["feld"+i]._x, _root["feld"+i]._y, i);
out = out+500;
};
};
Wenn ich ein trace(...) mache, liefert er auch für jeden Schritt die richtigen Werte aus.
Leider tritt aber nur eine Bewegung (und zwar die zum letzten Schritt) ein.
Woran könnte das liegen?
Danke im Voraus!