看板 Flash 關於我們 聯絡資訊
經過好幾天的摧殘... 腦細胞不知道死了N個 程式碼設定是隨機產生一個數字 然後不斷輸入去猜那個數 不知道是不是函數部分有問題 不過ctrl enter後編譯器也沒說有問題 但是swf檔執行到一半就會當掉... 函數是要去測試我所輸入的數字是否符合 小於的話就把它放到左框中 大於就放右框 等於就跳到場景三 以下是小弟的程式碼 不好意思麻煩大大幫忙解惑了! 感恩 stop(); stage.focus=in_txt; var l:Number=1; var l2:Number=99; leftout_txt.text=String(l); rightout_txt.text=String(l2); ok_btn.addEventListener(MouseEvent.CLICK, findabs); var high:int=99; var low:int=1; var r:Number=Math.floor(Math.random()*(1+high-low)+low); var num:Number; num = Number(in_txt.text); function findabs(evt:MouseEvent):void{ do{ if (num==r){ r=Number(time.text); gotoAndStop(3);} if(num<r) num=Number(leftout_txt.text); if (num>r) num=Number(rightout_txt.text); }while(num!=r); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.43.33.38
sextitanic:其實可以不用 do while,因為if就把所有事情都判斷完 12/06 00:28
sextitanic:而且你這個寫法,如果你輸入的數字不等於隨機數字 12/06 00:29
sextitanic:那迴圈就會不斷執行,不斷執行,不斷執行..... 12/06 00:29
sextitanic:還有那個 var 1:Number = 1; 不建議使用 12/06 00:33
sextitanic:可以直接 leftout_txt.text = "1"; 就好 12/06 00:34
sextitanic:那個變數 r 跟 num 其實變數型態指定 int 即可 12/06 00:35
sextitanic:因為這樣子隨機取完數目後它會自動把小數點忽略掉 12/06 00:36
sextitanic:就可以少用 Math.floor,省一次功 12/06 00:36
sextitanic:可能你之前有看過書上是用 Number 12/06 00:37
sextitanic:但是那本書可能是用 as 2.0,沒有 int 這個變數型態 12/06 00:37
dsmwang:num不改變然後一直執行無窮迴圈,也只能當掉了。 12/06 00:44