作者ysbh (無趣的人事物)
看板Flash
標題[問題] 求救~程式的組件BUG~
時間Fri Oct 23 19:52:59 2009
小弟最近寫了一個線上打字程式
大致上已經撰寫完成,但是昨天測試時發現一件事
在選好中打試題或英打試題後,在打字提示的訊息,要求使用者按下「空白」鍵
即可以開始進行,但是若按下的空白是「全形空白」
則組件的外框則會不見(例如:button、comboBox)
在Flash軟體下實際測試,按下全形空白,會出現下面的錯誤訊息
TypeError: Error #2007: 參數 child 不能是 Null。
at flash.display::DisplayObjectContainer/addChildAt()
at fl.controls::BaseButton/fl.controls:BaseButton::drawBackground()
at fl.controls::LabelButton/fl.controls:LabelButton::draw()
at fl.controls::Button/fl.controls:Button::draw()
at fl.core::UIComponent/::callLaterDispatcher()
小弟打字提示那個關鍵影格的程式碼如下:
stop();
//設定roo變數為根場景root
var roo=root;
var instruct="現在準備開始進行英文打字測驗\n";
instruct=instruct+"注意別打錯字,打錯一個字元\n倒扣"+roo.losePoint+"個打擊數
\n";
instruct+="\n請按下空白鍵,立即開始測驗";
var i=0;
var textTimer=new Timer(50,instruct.length);
instruction_txt.autoSize=TextFieldAutoSize.LEFT;
function setText(event) {
instruction_txt.appendText(instruct.charAt(i));
i++;
}
textTimer.addEventListener(TimerEvent.TIMER,setText);
textTimer.start();
function pressSpace(event) {
if (event.keyCode==Keyboard.SPACE) {
textTimer.stop();
play();
/*====================移除偵聽及元件====================*/
textTimer.removeEventListener(TimerEvent.TIMER,setText);
stage.removeEventListener(KeyboardEvent.KEY_DOWN,pressSpace);
/*======================================================*/
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN,pressSpace);
最後附上程式的網址:
http://61.227.187.39/ 帳號:12345 密碼:abcde
麻煩高手解答,感謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.227.187.39
推 sextitanic:那如果加一行判斷使用者輸入的是全形還是半形空白 10/24 03:59
→ sextitanic:如果是全形的,那就把它轉成半形的可以嗎 @@? 10/24 03:59
→ sextitanic:像是: if(event.keyCode == 229){ 10/24 03:59
→ sextitanic:event.keyCode = Keyboard.SPACE;} 10/24 04:00
→ sextitanic:229 是全形空白的 keyCode 10/24 04:00
→ ysbh:試了一下,全形空白好像不是229 10/24 14:22
→ ysbh:當 trace(event.charCode)時,發現全形空白是0 10/24 14:22
→ ysbh:後來我寫了 if(event.charCode==0){ event.charCode=32 ;} 10/24 14:23
→ ysbh:發現還是不行~ 10/24 14:23
推 sextitanic:喔喔,我 trace 的是 keyCode,不是 charCode 10/25 08:02
→ ysbh:發現這麼做,可以用全形空白執行,敘述中play() 10/25 08:42
→ ysbh:但是一樣會出現錯誤的訊息~ 10/25 08:42