{lang: 'de'}
Flashhilfe.de - Flash Community

Tween wiederholen und auf mehrere Objekte anwenden [Flash 10]

 


AntwortenRegistrieren Seite1  

Uhradone#1
Benutzerbild von Uhradone
Beiträge: 10
Registriert: Jun 2009

27.11.2009, 21:20

Hallo ihr Lieben,

habe ein paar Container, die ich immer von links nach rechts durchs Bild schiebe und den der rechts außerhalb ist zurück bringe - ins linke off - und neu lade.

Das funktionier prima, aber nach zirka 80-100 Durchgängen hängt er sich immer auf.

Habe nun wilde Theorien über Garbage Collectoren gelesen.
Wie kann ich ein Tween immer wieder verwenden, ohne dass ich ständig neue produziere, nebst entsprechenden EventListenern, die anscheinend das Ganze dann irgendwann zum Stillstand bringen, da es zu viele Instanzen gibt, oder ist das ein anderes Problem.
Danke, den klugen Köpfen!

Th

this["cont"+behMove].x = -551



function zweiteBewegung(){
   for (var h:uint = 1; h<5; h++){
         var Tween:bewegen2 = new Tween (this["cont"+h], "x", Regular.easeInOut, this["cont"+h].x, this["cont"+h].x + 358, 0.5, true);
         bewegen2.addEventListener(TweenEvent.MOTION_FINISH, addieren2);
   }
}

var hh:uint = 0;
function addieren2 (evt:Event){
   hh++;
   if (hh == 4){
      hh = 0;
      zwischenSpiel();
   }

}
Uhradone#2
Benutzerbild von Uhradone
Beiträge: 10
Registriert: Jun 2009

Themenautor/in

27.11.2009, 23:27

Hallo,
schaffe es mittlerweile mit folgendem Code auf 125 Wiederholungen .???
Seltsames Phänomen.

Th



ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
function Neu () {
behMove = reihenfolge[pos].re;

if (pos<3) {
      pos++;
   }else{
      pos=0;
   }   


this["cont"+behMove].x = -551;

zweiteBewegung();
}



var zzz:uint = 0; //Schleifenkontrolle für trace


//Schleifenbewegung   


function zweiteBewegung(){
   zzz++;
trace(zzz);
   
   


         var bewegen1:Tween = new Tween (cont1, "x", Regular.easeInOut, cont1.x, cont1.x + 358, 0.5, true);
         bewegen1.addEventListener(TweenEvent.MOTION_FINISH, addieren2);
         var bewegen2:Tween = new Tween (cont2, "x", Regular.easeInOut, cont2.x, cont2.x + 358, 0.5, true);
         bewegen2.addEventListener(TweenEvent.MOTION_FINISH, addieren2);
         var bewegen3:Tween = new Tween (cont3, "x", Regular.easeInOut, cont3.x, cont3.x + 358, 0.5, true);
         bewegen3.addEventListener(TweenEvent.MOTION_FINISH, addieren2);
         var bewegen4:Tween = new Tween (cont4, "x", Regular.easeInOut, cont4.x, cont4.x + 358, 0.5, true);
         bewegen4.addEventListener(TweenEvent.MOTION_FINISH, addieren2);



var hh:uint = 0;
function addieren2 (evt:Event){
   hh++;
   if (hh == 4){
      hh = 0;
      bewegen1.removeEventListener(TweenEvent.MOTION_FINISH, addieren2);
      bewegen2.removeEventListener(TweenEvent.MOTION_FINISH, addieren2);
      bewegen3.removeEventListener(TweenEvent.MOTION_FINISH, addieren2);
      bewegen4.removeEventListener(TweenEvent.MOTION_FINISH, addieren2);
      
      
      
      
      Neu();
   }

}
}
springer#3
Benutzerbild von springer
Beiträge: 4909
Wohnort: zuhaus
Registriert: Apr 2004

28.11.2009, 10:29