学习unicode肯定得到官方网站http://www.unicode.org/啦。内容真多,不过me的主要任务是找到汉字所在的区间。汗颜,me先通过word的插入字符功能进行查询。初步查阅到第一个汉字应该是“一”,够有意义的,最后一个好像是“龥”,真不认得,不是反查拼音me还真不知道念“yue4”。
在unicode的官方网站下载了CJK Unified Ideographs (5MB),看看果然是这样。嘿嘿,这下me的汉字测试器就不会出现令人尴尬的“?”咯。查了半天,汉字编码在UNICODE编码系统中,cjk汉字的区间为0x4e00到0x9fa5,共20902个汉字。cjk印象中好像是中国、日本和韩国,文字毕竟有点互通,所以就共同编篡了一份,避免浪费空间。
在motorola A388上运行,很好。不过顶部出汉字的时候非要整个汉字完全显示才出得来,给人的感觉很不好,好像有个东东突然从天上掉下来样的。这个问题好解决,把坐标数组纵向拉长一个字符高度就行了,drawChar的时候,从-FontHeight处写起。修改后,在motorola j2me Launchpad中测试好好的,下载到手机上倒出现了一个问题,左下角有块空白(画布的底色me设为了黑色)!
问题原来出在了坐标数列的长度方面。因为原来的例程只对屏幕 范围内的像素进行操作,所以数组的长度默认是Height,然后在每个需要数列length的时候都直接调用了Height,但是me为了解决字符平滑进出而拉长了数组,嘿嘿,矛盾就出现了,因为每次更新都不完全。左下角的空白宽度刚好和FontHeight相同。
找到需要数组长度的地方,改Height固定值为stars.length(),问题解决。
全局变量的不当使用导致错误发生的频率还是蛮高的,以后要注意!关键是很难记清哪些地方调用了这个变量,最好用随时查询最新值的方式代替,切切。