2017-11-01 23 views
0

入力テキストフィールドを使用してユーザーから入力を取得しようとしていますが、このデータは数値です。ユーザーに正しい番号(この場合は1)を入力させてから、それを印刷してほしい。Actionscript入力を受け取りIntと比較します

しかし、私はそれを動作させることはできません。どんな助けも大歓迎です。

私は問題がintと文字列を比較することであると仮定しますが、正直なところはもうわかりません。

import flash.events.MouseEvent; 
import flash.text.TextField; 

var dayVar:String = dayInput.text; 
var dayNum:Number = Number(dayVar); 


stop(); 

button3.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler3); 

function mouseDownHandler3(event:MouseEvent):void 
{ 
    if(dayNum == 1) { 
     trace("yay"); 
    } else { 
     trace("nay"); 
    } 
} 
+0

ユーザー入力後のある時点で 'dayVar'を更新しますか?そうでなければ、あなたの現在のif-conditionの代わりに 'if(Number(dayInput.text)== 1){'を試してください。 – kaarto

+0

@kaartoありがとうございました!これが問題でした。 – AndyGUY

答えて

3

ユーザーが入力したの後にdayValおよび/またはdayNumを更新する必要があります。したがって、この最小限の場合には、単にすることができます:

function mouseDownHandler3(event:MouseEvent):void{ 
    if(Number(dayInput.text)==1) { 
     trace("yay"); 
    } else { 
     trace("nay"); 
    } 
} 

その他possibilitesはあなたの変数を更新するために、テキスト入力のためのEvent.CHANGE、またはKeyboardEventを聴くことになるが、この場合にはMouseEventハンドラは、ジョブが容易に行います。

-1

次のようなテキストフィールドの入力のための制限プロパティを使用することができます。

dayInput.restrict = "0-9"; 

これは、数字のみを入力して省略しなければなりません。