作者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
1F:推 sextitanic:那如果加一行判断使用者输入的是全形还是半形空白 10/24 03:59
2F:→ sextitanic:如果是全形的,那就把它转成半形的可以吗 @@? 10/24 03:59
3F:→ sextitanic:像是: if(event.keyCode == 229){ 10/24 03:59
4F:→ sextitanic:event.keyCode = Keyboard.SPACE;} 10/24 04:00
5F:→ sextitanic:229 是全形空白的 keyCode 10/24 04:00
6F:→ ysbh:试了一下,全形空白好像不是229 10/24 14:22
7F:→ ysbh:当 trace(event.charCode)时,发现全形空白是0 10/24 14:22
8F:→ ysbh:後来我写了 if(event.charCode==0){ event.charCode=32 ;} 10/24 14:23
9F:→ ysbh:发现还是不行~ 10/24 14:23
10F:推 sextitanic:喔喔,我 trace 的是 keyCode,不是 charCode 10/25 08:02
11F:→ ysbh:发现这麽做,可以用全形空白执行,叙述中play() 10/25 08:42
12F:→ ysbh:但是一样会出现错误的讯息~ 10/25 08:42