2016-09-21 74 views
2

我正在做一個Collat​​z猜想的小AS3函數。 這是代碼:輸入文字改變整數? 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 
     } 
    } 
} 

但是,有時將TextInput變爲負數。

123123123123變成-1430928461

12312312312321312變成-1715645152

等。

我不知道爲什麼,但我認爲這與

numb=int(input.text) 

做的,但我不想做的絕對值,因爲,方程會做出錯誤的結果。 如果你想讓它停在負數(和測試它自己)這樣做:

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

而不是

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

回答

4

12312312312321312變成-1715645152

那數字量不適合integer數據類型。將每個intNumber替換並再次測試。

即:var numb:Number=0;var amount:Number=0;numb=Number(input.text);

+0

那工作!謝謝! –