2011-03-27 103 views
0

好吧,有人可以解釋我的代碼下面有什麼問題,沒有錯誤,但它沒有做我想做的事情。當隨機生成的名爲「randint」的變量大於或等於0.5時,我需要它在屏幕上顯示一個動畫片段。如果不是,則不會顯示。代碼:AS3兒童問題與if語句

addEventListener(Event.ENTER_FRAME, char_coll); 
function char_coll(ev : Event) : void 
{ 
    if(currentFrame==2) 
    { 
     if (randint >= 0.5){ 
      var w1:woman1 = new woman1(); 
      randint = Math.random(); 
      if(w1.hitTestObject(stand)){ 
       w1.gotoAndPlay(1); 
       cash1 = cash1 + 1; 
     } 
     } 

    } 
}; 
+0

值得注意的是,'randint'在這裏是一個誤稱,因爲Math.random返回0和1之間的浮點數。 – 2012-02-21 01:12:28

回答

0

randint在if語句中設置。這意味着randint始終是未定義的,因爲它必須是>= 0.5才能設置爲任何值(捕獲類型22)。

此代碼應工作:

addEventListener(Event.ENTER_FRAME, char_coll); 
function char_coll(ev : Event) : void 
{ 
    if(currentFrame==2) 
    { 
     var randint:Number = Math.random(); 
     if (randint >= 0.5){ 
      var w1:woman1 = new woman1(); 
      stage.addChild(w1); 
      if(w1.hitTestObject(stand)){ 
       w1.gotoAndPlay(1); 
       cash1 = cash1 + 1; 
      } 
     } 

    } 
}; 

那麼你當然必須添加w1到舞臺使用addChild(),你可以參見下面的VAR w1:woman1 = new woman1();

希望它能幫助!

+0

現在好了,我的hitobject if語句不工作。任何想法爲什麼? – 2011-03-27 18:09:07

+0

對不起,不知道你從哪裏得到「立場」?它是另一個精靈嗎? – 2011-03-27 18:16:39

+0

是的,stand是場景中的動畫片段的另一個實例名稱。 – 2011-03-27 18:17:49