Flashhilfe.de - Flash Community

Problem bei replay [Flash 10]

 


AntwortenRegistrieren Seite1  

MartinL88#1
Benutzerbild von MartinL88
Beiträge: 23
Registriert: May 2010

11.03.2012, 09:47

Hallo

ich habe folgendes Problem. Wenn ich auf den Button Start klicke springt er ja ganz normal in Bild 1.
Aber dabei wird irgendwie die Geschwindigkeit von den Movieclips verändert.
Wenn man öfter auf die Schaltflächen klickt, merkt man es dass es immer schneller wird.


Meine Frage warum passiert das und was muss ich ändern, damit sich die Geschwindigkeit von den Movieclips sich nicht verändert.

Bin über jede Hilfe dankbar.

hier mein Code:

Schaltflächen Code Bild1:

on(release){
   
   for(i=0; i < anzBalls; i++){
      balls = bBallAry[i];
      balls.removeMovieClip();
   }
   
   gotoAndStop(2);
}

Schaltflächen Code Bild2:


on(release){
   gotoAndStop(1);
}

Haupt Code im Bild1:

var anzBalls = 2;
var time = 10;
var bBallAry = new Array();
var startBaelle = fInit(anzBalls, bBallAry, "ball", 200,200);
var baelleLoop = setInterval(this,"kLoop", time, anzBalls, bBallAry);
stop();

function fInit(anzbaelle:Number, einArray:Array, objName:String, positionX:Number, positionY:Number):Void {
   
   for (i=0; i<anzbaelle; i++) {
      vName = objName+i;
      vSym = objName;
      _root.attachMovie(vSym,vName,_root.getNextHighestDepth());
      obj = _root[vName];
      einArray.push(obj);
      
      obj.speedX = 1;
      obj.speedY = 1;
      
      obj._x = positionX + i*100;
      obj._y = positionY+ i*100;
   }
}

function kLoop(anzb:Number, einArr:Array):Void {
   
   var anzbaelle:Number = anzb;
   var einArray:Array = einArr;
   
   for (i=0; i<anzbaelle; i++) {
      
      obj = einArray[i];
      
      var distX:Number = obj._x-kreisGross._x;
      var distY:Number = obj._y-kreisGross._y;
      var dist:Number = Math.sqrt(distX*distX+distY*distY);
      var radius0 = obj._width/2;
      var radius1 = kreisGross._width/2;
      if (dist<radius1-radius0) {
         obj._x += obj.speedX;
         obj._y += obj.speedY;
      }
      else {
         obj.speedX = -obj.speedX;
         obj._x += obj.speedX;
         obj.speedY = -obj.speedY;
         obj._y += obj.speedY;
      }
   }
}

Angehängte Dateien:
Adobe Flash Quelldatei replayTest.fla48.00 KB
Adobe Flash Quelldatei replayTest.fla96.00 KB
Adobe Flash Quelldatei replayTest.fla96.00 KB
Schlagwörter: Schaltfläche, Speed
vindel#2
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

11.03.2012, 20:58

Hallo,

du musst natürlich auch dein Interval beenden - ansonsten erstellst du dir ein neues und die Geschwindigkeit verschnellert sich! Einfach in dein "ende"-Button:
ActionScript:
1clearInterval(baelleLoop);

hinzufügen und es sollte gehen!
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
MartinL88#3
Benutzerbild von MartinL88
Beiträge: 23
Registriert: May 2010

Themenautor/in

13.03.2012, 13:58

vielen Dank für die Anwort.

Jetzt geht es wieder richtig. :-)

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   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de