0

配列への null エントリをチェックし、それらが空のエントリである場合はメッセージを出力できるようにしたいと考えています。

それで、ないときはプログラムを続けたいと思います。

私は自分が何を間違ったのか本当に見えません。

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();
        }

    }
4

3 に答える 3

2
    noNulls = true;
    for (e = 0; e < 6; e++)
    {
        if (mainArray[e] == 0)
        {
            genericText.text = "Make sure all boxes are filled!";
            noNulls = false;
            break;
        }
    }
于 2012-11-28T15:58:08.220 に答える
1

おそらく、空の文字列(テキストフィールドが空の場合)を数値に変換すると「0」になり、数値「0」をnullにマップするとfalseになります。

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

変数を入力した場合でも、数値をnullと比較することはできません。

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

あなたのコメントに答えて; 警告テキストを設定した後は、おそらく休憩をとる必要があります。

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

それ以外の場合、次のテキストフィールドが適切に入力されると、noNulls値が再びfalseで上書きされます。また、1つはすでに無効であるため、とにかく残りのフィールドをチェックする必要はありません。

于 2012-11-28T16:06:48.053 に答える
1

TextField に値を入力しない場合、"text" プロパティは NULL ではなく空の文字列になります。

于 2012-11-28T16:03:21.397 に答える