在tick函数createjs中调用一个渐变

Call a tween in tick function createjs

本文关键字:一个 渐变 调用 tick 函数 createjs      更新时间:2023-09-26

尝试在两个精灵碰撞时对精灵的alpha进行补间

现在它不播放补间,只是跳到alpha值为1的

是否有办法让精灵渐变到alpha值为1并保持这种状态?

我有一种感觉,它不工作,因为sprites函数被连续调用?

     function tick(){
        checkCollision();
        stage.update();
        }
      var checkCollision = function(){
       if(gameState=="gameStarted"){  
        collision = ndgmr.checkPixelCollision(car,surfaceImg,0); 
        if(collision){
            score++;
            sprites("on");
            }else{
            sprites("off"); 
            }
        }
    }

    var sprites = function(toggleParam){   
    for(var i = 0; i < spriteArr.length; i++){
        if(i == 2 || i == 3){
            if(toggleParam=="on"){
        createjs.Tween.get(spriteArr[i]).to({alpha:1}, 500);
            }else{
        createjs.Tween.get(spriteArr[i]).to({alpha:0}, 500); 
            }
        }
    }
 }

通过设置全局变量extraSpites

解决了这个问题
extraSpites = false;
var sprites = function(toggleParam){   
     if(!extraSpites && toggleParam == "on"){
        extraSpites = true;
        createjs.Tween.get(spriteArray[2]).to({alpha:1}, 500);
        createjs.Tween.get(spriteArray[3]).to({alpha:1}, 500); 
     return    
      }else if(extraSpites && toggleParam == "off"){
        extraSpites = false;
        createjs.Tween.get(spriteArray[2]).to({alpha:0}, 500);
        createjs.Tween.get(spriteArray[3]).to({alpha:0}, 500);
     return;    
  }

}