2011-03-27 74 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