2013-04-26 16 views
0

我正在使用AIR應用上的Actionscript 3代碼,在一箇中間場景中。當我滑到另一個場景時,雪會刷新並繼續下降。在下面顯示的雪碼的場景之前和之後,我應該如何編碼以防止雪碼再次發生?如何阻止我的雪碼在其他場景中發生

"stop(); 

//Snow Flake Animation start 

var snowarr = new Array(); 

var maxflakes:int = 60; 

for(var s:int = 0; s<maxflakes; s++) 
{ 
    var sf:snowflake = new snowflake(); 
    addChild(sf as DisplayObject); 
    sf.x = Math.random()*stage.stageWidth; 
    sf.y = 0-Math.random()*stage.stageWidth; 
    var snowsize:Number = .3+(Math.random()*.6); 
    sf.scaleX = sf.scaleY = sf.snowsize = snowsize; 
    snowarr.push(sf); 
    sf.cacheAsBitmap = true; 
} 

for(s = 0; s<maxflakes; s++) 
{ 
    sf = new snowflake(); 
    addChild(sf as DisplayObject); 
    sf.x = Math.random()*stage.stageWidth; 
    sf.y = 0-Math.random()*stage.stageWidth; 
    snowsize = .9+(Math.random()*.6); 
    sf.scaleX = sf.scaleY = sf.snowsize = snowsize; 
    snowarr.push(sf); 
    sf.cacheAsBitmap = true; 
} 

function updateFlakes(event:Event):void 
{ 
    for(var f:int = 0; f<(maxflakes*2); f++) 
    { 
     snowarr[f].y+=snowarr[f].snowsize*4; 
     if(snowarr[f].y>stage.stageHeight) 
     { 
      snowarr[f].y-=stage.stageHeight; 
     } 
    } 
} 

addEventListener(Event.ENTER_FRAME, updateFlakes); 
//Snow flake Animation End" 

回答

0
function set showSnow(b:boolean):void{ 
     if (b) { 
       addEventListener(Event.ENTER_FRAME, updateFlakes); 
     }else{ 
       removeEventListener(Event.ENTER_FRAME, updateFlakes); 
       /* add some routines to remove any flakes currently on the stage */ 
     } 
    } 



Now, when you change pages, call this function to turn the snow on and off. 

照顧, 李

+0

喜利,我其實沒有非常少的代碼,因爲這些代碼是從一些複製其他地方上線。我在這裏如何使用你的代碼。複製時,我得到一個錯誤,說:「Pic_32,圖層'行動',幀1415年,第44行\t 1046:類型未找到或不是編譯時常量:布爾值。」我爲無用而道歉。不用擔心,如果它有很多要問。 – user2325547 2013-04-26 23:52:30

+0

可能需要是布爾值,而不是布爾值。我想我假設你寫了原始代碼。要確定實現這一目標的最佳方式將非常困難。如果你可以找到一些處理改變頁面的代碼,你可以從那裏調用這個函數。 – 2013-04-27 00:10:19

相關問題