Ошибка, которую вы получаете, говорит вам, что вы используете TextInput
, как будто это Number
.
Просматривая ваш код, мы видим, что это действительно так:
int(value1) //value1 presumably is a TextInput, and can't be converted to an int
//and later...
int((value1*m) //value1 is a TextInput, and can't be multiplied
Что вам нужно сделать, это сначала преобразовать текстовое свойство TextInput в число, а затем выполнить математику.(точно так же, как вы в настоящее время делаете с текстовым полем множителя)
int(value1.text) * m
Однако есть несколько других проблем с вашим кодом, например, как вы создаете свой массив.Вот потенциальный рефакторинг
var txtbox:TextFormat = new TextFormat();
txtbox.size = 11;
txtbox.bold = true;
//put all the text inputs and in an array so you don't have to repeat the same code so much
var textInputs:Array = [value1,value2,value3, value4, value5];
var textOutputs:Array = [result1, result2, result3, result4, result5];
//set the style in a for loop
for(var i:int=0;i<textInputs.length;i++){
textInputs[i].setStyle("textFormat",txtbox);
}
multiplier.setStyle("textFormat",txtbox);
compute.addEventListener(MouseEvent.CLICK, calBtn);
function calBtn(event:MouseEvent):void
{
var m:Number=Number(multiplier.text);
//make sure the multiplier is a valid number
if(isNaN(m)){
//do something here to tell the user they entered something invalid
return; //don't keep going in this function
}
//loop through each text input
for(var i:int=0;i<textInputs.length;i++){
//convert text input value to number
var num:Number = int(textInputs[i].text);
//check if the input is valid
if(!isNaN(num)){
textOutputs[i].text = String( (num * 1000) / 100 );
}else{
textOutputs[i].text = "Invalid Number";
}
}
}