Flashhilfe.de - Flash Community

tween class mit for-Schleife [Flash 8]

 


AntwortenRegistrieren Seite1  

TenLee#1
Benutzerbild von TenLee
Beiträge: 15
Registriert: Feb 2009

22.06.2011, 15:44

Hallo allerseits!

Ich habe folgendes Problem:

ich möchte 3 movieclips namens item0 bis item2 mithilfe von tween class und einer for-Schleife bewegen und nach der animation mit onMotionFinished weiter bewegen. Das erste tween funktioniert, aber beim zweiten kann ich die movieclips nicht mehr adressieren. Kann mir jemand helfen?

Hier ist der code:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
import mx.transitions.Tween;
import mx.transitions.easing.*;

btn1.onRelease = function() {
     for (i=0;i<3;i++) {
        var tw1:Tween = new Tween(_root["mc"+i], "_x", Strong.easeOut, _root["mc"+i]._x, _root["mc"+i]._x+20, 3, true);
        tw1.onMotionFinished = function() {
           var tw2:Tween = new Tween(_root["mc"+i], "_y", Strong.easeOut, _root["mc"+i]._y, _root["mc"+i]._y+20, 3, true);
        }
     }
}


Vielen Dank im voraus.
Olli_K#2
Benutzerbild von Olli_K
Beiträge: 1413
Wohnort: Hauptstadt
Registriert: Dec 2004

22.06.2011, 16:40

Meiner Meinung nach, geht das nicht in einer Schleife, weil die ja komplett ausgeführt wird, ohne Rücksicht auf Verluste. Mach mal eine Function und einen Intervall:
ActionScript:
1
2
3
4
5
6
7
8
9
10
i = 0;
multiTween = function () {
     i++;
     var tw1:Tween = new Tween(_root["mc"+i], "_x", Strong.easeOut, _root["mc"+i]._x, _root["mc"+i]._x+20, 3, true);
     var tw2:Tween = new Tween(_root["mc"+i], "_y", Strong.easeOut, _root["mc"+i]._y, _root["mc"+i]._y+20, 3, true);
     if (i>3) {
        clearInterval(multiTweenIntervall);
     }
};
multiTweenIntervall = setInterval(multiTween, 3000);
LG | Olli

pixbox
Geändert von Olli_K am 22.06.11 um 16:46 Uhr
vindel#3
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

25.06.2011, 18:54

Du kannst alternativ die Tweenvariablen in deinem MC speichern - dann überschreibst du die nicht:
ActionScript:
1
2
3
4
_root["mc"+i].tw1= new Tween(_root["mc"+i], "_x", Strong.easeOut, _root["mc"+i]._x, _root["mc"+i]._x+20, 3, true);
_root["mc"+i].tw1.onMotionFinished() {
  var tw2:Tween = new Tween(this, "_y", Strong.easeOut, this._y, this._y+20, 3, true);
}

in den onMotionFinished- Funktion hat i den maximalen Wert der for-Schleife, da diese ja bereits ausgeführt ist. Aber "this" beinhaltet den MC, auf den du das tween angewendet hast.
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Geändert von vindel am 25.06.11 um 18:55 Uhr

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de