2013-10-14 4 views
1

У меня было время делать все это. Я надеюсь, что каждый может помочь. Так что ... это то, что нужно сделать 9 текстовых полей и добавить их в динамическое текстовое поле. Итак, вот мои проблемы.Добавление номеров текстовых полей с AS3

  1. Как я могу заменить пустое текстовое поле с 0, если пользователь избавляется от 0, который уже там его выйдет NaN. Приведенные ниже утверждения должны были исправить это, возможно, кто-то может его улучшить.

    stage.addEventListener (Event.CHANGE, checkTotal); nextQuestion_btn.addEventListener (MouseEvent.MOUSE_DOWN, nextQuestion);

    function checkTotal(e:Event){ 
    
    var work:Number = parseInt(work_txt.text); 
    var rnr:Number = parseInt(rnr_txt.text); 
    var exerciseB:Number = parseInt(exerciseB_txt.text); 
    var exerciseM:Number = parseInt(exerciseM_txt.text); 
    var chores:Number = parseInt(chores_txt.text); 
    var social:Number = parseInt(social_txt.text); 
    var food:Number = parseInt(food_txt.text); 
    var twt:Number = parseInt(twt_txt.text); 
    var partying:Number = parseInt(partying_txt.text); 
    var other:Number = parseInt(other_txt.text);  
    
    if(work_txt.text==""){ 
    work=0; 
    } 
    if(rnr_txt.text==""){ 
    rnr=0; 
    } 
    if(exerciseB_txt.text==""){ 
    exerciseB=0; 
    } 
    if(exerciseM_txt.text==""){ 
    exerciseM=0; 
    } 
    if(chores_txt.text==""){ 
    chores=0; 
    } 
    if(social_txt.text==""){ 
    social=0; 
    } 
    if(food_txt.text==""){ 
    food=0; 
    } 
    if(twt_txt.text==""){ 
    twt=0; 
    } 
    if(partying_txt.text==""){ 
    partying=0; 
    } 
    if(other_txt.text==""){ 
    other=0; 
    } 
    
    var total400:Number = work + rnr + exerciseB + exerciseM + 
    chores + social + food + twt + partying + other; 
    

  1. Я не могу позволить мои текстовые коробки добавить до более чем 400, так как типы пользователей в 399 в один ящик, если пользователь 2 в следующем, что нынешний текст коробка вернется к 0, потому что она будет более 400.

Мне сказали, что использование e.currentTarget может решить эту проблему, но я не уверен, как ее использовать.

Весь мой код ... Это мой первый раз на этом сайте, поэтому, пожалуйста, простите меня за мою любовь.

work_txt.maxChars = 3; 
rnr_txt.maxChars = 3; 
exerciseB_txt.maxChars = 3; 
exerciseM_txt.maxChars = 3; 
chores_txt.maxChars = 3; 
social_txt.maxChars = 3; 
food_txt.maxChars = 3; 
twt_txt.maxChars = 3; 
partying_txt.maxChars = 3; 
other_txt.maxChars = 3; 

work_txt.restrict = "0-9" 
rnr_txt.restrict = "0-9" 
exerciseB_txt.restrict = "0-9" 
exerciseM_txt.restrict = "0-9" 
chores_txt.restrict = "0-9" 
social_txt.restrict = "0-9" 
food_txt.restrict = "0-9" 
twt_txt.restrict = "0-9" 
partying_txt.restrict = "0-9" 
other_txt.restrict = "0-9"; 

/*work_txt.text = "0"; 
rnr_txt.text = "0"; 
exerciseB_txt.text = "0"; 
exerciseM_txt.text = "0"; 
chores_txt.text = "0"; 
social_txt.text = "0"; 
food_txt.text = "0"; 
twt_txt.text = "0"; 
partying_txt.text = "0"; 
other_txt.text = "0";*/ 

var survival:Number = 0; 

nextQuestion_btn.visible=false; 

stage.addEventListener(Event.CHANGE, checkTotal); 
nextQuestion_btn.addEventListener(MouseEvent.MOUSE_DOWN, nextQuestion); 

function checkTotal(e:Event){ 

var work:Number = parseInt(work_txt.text); 
var rnr:Number = parseInt(rnr_txt.text); 
var exerciseB:Number = parseInt(exerciseB_txt.text); 
var exerciseM:Number = parseInt(exerciseM_txt.text); 
var chores:Number = parseInt(chores_txt.text); 
var social:Number = parseInt(social_txt.text); 
var food:Number = parseInt(food_txt.text); 
var twt:Number = parseInt(twt_txt.text); 
var partying:Number = parseInt(partying_txt.text); 
var other:Number = parseInt(other_txt.text);  

if(work_txt.text==""){ 
    work=0; 
} 
if(rnr_txt.text==""){ 
    rnr=0; 
} 
if(exerciseB_txt.text==""){ 
    exerciseB=0; 
} 
if(exerciseM_txt.text==""){ 
    exerciseM=0; 
} 
if(chores_txt.text==""){ 
    chores=0; 
} 
if(social_txt.text==""){ 
    social=0; 
} 
if(food_txt.text==""){ 
    food=0; 
} 
if(twt_txt.text==""){ 
    twt=0; 
} 
if(partying_txt.text==""){ 
    partying=0; 
} 
if(other_txt.text==""){ 
    other=0; 
} 

var total400:Number = work + rnr + exerciseB + exerciseM + 
chores + social + food + twt + partying + other; 

trace(work); 
trace(rnr); 
trace(exerciseB); 
trace(exerciseM); 
trace(chores); 
trace(social); 
trace(food); 
trace(twt); 
trace(partying); 
trace(other); 
trace(total400); 

total400_txt.text = String(total400); 

    if(total400 >= 400){ 
     nextQuestion_btn.visible=true; 
    }else{ 
     nextQuestion_btn.visible=false; 
    } 
} 

ответ

1

Q1

Если значения только может быть Int типа, попробуйте использовать INT вместо Number

var work:int = parseInt(work_txt.text);//work will be 0 if the text is empty 

Q2

Если вы хотите вернуть текст в 0 (текстовое окно, в котором вход 2)

function checkTotal(e:Event){ 

    var target:TextField = e.target as TextField; 

    if(total400 >= 400){ 

     if (target) {//you may check if target is one of the text box you have listed. 

      target.text = "0"; 

     } 

     nextQuestion_btn.visible=true; 
    } 
} 
Смежные вопросы