actionscript-3 - كتاب - actionscript ماهو



يتغير نص الإدخال عددا صحيحا؟ AS3 (1)

أنا جعل وظيفة AS3 صغيرة من كولاتز التخمين. هذا هو الرمز:

import flash.events.Event;
import flash.events.MouseEvent;

var numb:int=0
var amount:int=0
button.addEventListener(MouseEvent.CLICK, buttonclick)
function buttonclick(buttonclicked:MouseEvent):void{
    numb=int(input.text)
    trace(numb)
    amount=0
}
stage.addEventListener(Event.ENTER_FRAME, equate)
function equate(equate:Event):void{
    dynam.text=amount.toString() + "\n" + numb.toString();;
    if(numb !=0 && numb !=1){
        if(numb % 2 == 0){
            numb=numb/2
            amount+=1
        }
        else{
            numb=numb*3+1
            amount+=1
        }
    }
}

ومع ذلك، في بعض الأحيان يصبح تكستينبوت رقم سلبي.

123123123123 يتحول إلى -1430928461

12312312312321312 يتحول إلى -1715645152

وما إلى ذلك وهلم جرا.

أنا لا أعرف لماذا، ولكن أعتقد أن لها علاقة مع

numb=int(input.text)

لكنني لا أريد أن أفعل القيمة المطلقة، لأن المعادلة ستؤدي إلى نتائج خاطئة. إذا كنت تريد أن تتوقف على الرقم السلبي (واختبر بنفسك) القيام بذلك:

if(numb !=0 && numb !=1 && numb>1)

بدلا من

if(numb !=0 && numb !=1)

12312312312321312 يتحول إلى -1715645152

لن يتناسب هذا العدد من الأرقام مع نوع بيانات صحيح . استبدال كل int مع Number واختبار مرة أخرى.

إي: var numb:Number=0; و var amount:Number=0; أند numb=Number(input.text);