2012-11-28 38 views
0

我希望能夠檢查數組中的空項,並打印一條消息,如果它們是空條目。爲什麼它不是「如果爲空,等到非空」而不是其他方式

然後,當沒有我想要繼續該程序。

我真的不明白我做錯了什麼。

var mainArray:Array = new Array (6); 

function addNumbers(event:MouseEvent):void 
{ 

    userNumber1.selectable = false; 
    userNumber1.type = TextFieldType.DYNAMIC; 
    userNumber2.selectable = false; 
    userNumber2.type = TextFieldType.DYNAMIC; 
    userNumber3.selectable = false; 
    userNumber3.type = TextFieldType.DYNAMIC; 
    userNumber4.selectable = false; 
    userNumber4.type = TextFieldType.DYNAMIC; 
    userNumber5.selectable = false; 
    userNumber5.type = TextFieldType.DYNAMIC; 
    userNumber6.selectable = false; 
    userNumber6.type = TextFieldType.DYNAMIC; 


    mainArray[0] = Number(userNumber1.text); 
    mainArray[1] = Number(userNumber2.text); 
    mainArray[2] = Number(userNumber3.text); 
    mainArray[3] = Number(userNumber4.text); 
    mainArray[4] = Number(userNumber5.text); 
    mainArray[5] = Number(userNumber6.text); 

    noNull(); 
} 

    function noNull() 
    { 
     var e; 
     var noNulls:Boolean = new Boolean(); 
     noNulls = false; 
     for (e = 0; e < 6; e++) 
     { 
      if (mainArray[e] == null) 
      { 
       genericText.text = "Make sure all boxes are filled!"; 
      } 
      else 
      { 
       noNulls = true; 
      } 

     } 

     if (noNulls == true) 
     { 
      duplicateCheck(); 
     } 

    } 
+0

我給你一個提示,你的數組看起來像這樣[a,b,c,null,null,f] - 現在你的通用文本將在e = 3時設置爲「確定...」,但nonulls將是真實的,因爲最後一個元素不是空的「f」。所以要麼在第一個錯誤時斷開,要麼在發現空時確保將noNulls設置爲false –

回答

2
noNulls = true; 
    for (e = 0; e < 6; e++) 
    { 
     if (mainArray[e] == 0) 
     { 
      genericText.text = "Make sure all boxes are filled!"; 
      noNulls = false; 
      break; 
     } 
    } 
+0

它仍然不起作用。我真的不知道爲什麼。它只是繼續,好像沒有空盒子一樣。 – Kuga

+0

糟糕,糾正。 –

1

如果我們不進入文本字段的任何值,然後選擇「文本」屬性是空字符串,而不是NULL。

+0

但是我把它轉換成了一個數字:/ – Kuga

+0

我仍然試着檢查數組元素是否不包含字符,它仍然只是繼續:S – Kuga

+0

無論如何,Number(「」)= 0,而不是NULL。嘗試在noNull()的開頭追蹤mainArray。我敢打賭,你不會發現NULL – AtomicRobot

1

大概是因爲轉換爲空字符串(文本域的情況下是空的)與數給出「0」和comapring一個數字「0」到空提供虛假:

var arr:Array = []; 
arr[0] = Number(""); 
trace(arr[0] == null); //false 

比較一個號碼爲空ISN如果您輸入變量,甚至不可能:

var x:Number = Number(""); 
trace(x == null); //gives a compile error 

回答您的評論;你或許應該把休息你設置的警告文本後:

genericText.text = "Make sure all boxes are filled!"; 
break; 

否則,如果下一個文本字段是正確填寫它會再次覆蓋以虛假的noNulls值。也不需要檢查剩下的字段,因爲一個已經失效了。

+0

好吧,現在我已經設法讓它顯示消息,但它仍然繼續與程序呢?我不明白爲什麼。 – Kuga

相關問題