2014-10-27 34 views
0

我已经把停在一个关键帧,但剧本还在继续,并通过雅虎不接受如何停止的循环不休

我还试图停止()一个flash动画,但它没有工作,它用于重复码元和突发它

import mx.transitions.Tween; 
import mx.transitions.easing.*; 

var maxXPosition:Number = Stage.width/2; 
var maxYPosition:Number = Stage.height/2; 
var starCount:Number = 0; 
var starIndex:Number = 0; 
var starCreatorInterval:Number = null; 

//Minimum and Maximum speeds. 
//The speed defines the direction too, so the "minSpeed" must be negative. 
var minSpeed = -3; 
var maxSpeed = 12; 

//Maximum number of stars on the screen at the same time. 
var maxStarsOnScreen:Number = 500; 

//Star creation speed (in miliseconds). 
//For small movies, set a faster creation speed, so you will have more stars. 
var creationSpeed = 10; 

initStarfield(); 

/** 
* Space Warp Functions 
*/ 
function initStarfield():Void { 
    starCreatorInterval = setInterval(this, "generateStar", creationSpeed); 
} 

function generateStar():Void { 
    updateMaximus(); 

    if (starCount < maxStarsOnScreen) { 

     var xSpeed:Number = getRandom(minSpeed, maxSpeed); 
     var ySpeed:Number = getRandom(minSpeed, maxSpeed); 

     var mcStar:MovieClip = this.attachMovie("mcStar", "mcStar" + starIndex, starIndex, {_x: xSpeed * 5, _y: ySpeed * 5}); 
       mcStar.xSpeed = xSpeed; 
       mcStar.ySpeed = ySpeed; 
       mcStar._xscale = mcStar._yscale = 10; 
       mcStar.onEnterFrame = function():Void { updateStar(this); } 

     //Update control vars 
     starCount++; 
     starIndex++; 

     if (starIndex > 500) starIndex = 500; 
    } 
} 

function updateStar(mcStar:MovieClip):Void { 
    if (mcStar._x > maxXPosition || mcStar._y > maxYPosition || 
      mcStar._x < -maxXPosition || mcStar._y < -maxYPosition || 
      mcStar._alpha < 5) { 
     removeMovieClip(mcStar); 
     starCount--; 
    } 
    else { 
     mcStar._x += mcStar.xSpeed; 
     mcStar._y += mcStar.ySpeed; 
     if (mcStar._xscale < 100) mcStar._xscale = mcStar._yscale += 0.5; 
     else mcStar._alpha -= 2; 
    } 
} 

function updateMaximus():Void { 
    maxXPosition = Stage.width/1; 
    maxYPosition = Stage.height/1; 
} 

function getRandom(min:Number, max:Number):Number { 
    var now:Date = new Date(); 
    var rand:Number = Math.random() * now.getMilliseconds() * 1000; 
    var randReturn:Number = 0; 

    randReturn = (rand % max) + min; 

    if ((Math.floor(Math.random() * 1000) % 2) == 0) randReturn *= -1; 

    return randReturn; 
    stop(); 
} 

任何帮助,将不胜感激

回答

0

可爱动画。这段代码能满足你吗?

_root.onMouseDown = function() { 
    clearInterval(starCreatorInterval) ; 
}; 

将其添加到脚本的末尾并尝试。通过点击舞台,间隔变量将被删除。