责任编辑:徐威特作者:阿肆 2009-04-02
【IT168 技术文档】好了,经历过千辛万苦我们终于来到再次来到了Debug/Run,不过我得提醒大家现在还不是放松的时候,我在上面有提及到还有个bug我们尚未调试出来,留了一个问题,这个问题在程序上不是以语法错误显示,而是一个逻辑功能错误导致,接下来我们按照我们第一次Debug/Run的方法把程式运行起来。这里提醒下大家在配置Debug/Run Configurations 的时候注意选择launch建议选择“com.haseman.splashy.getsplashy”这一个选项。
好了,我们启动,程序的开始是一个splash的界面,就是类似于开机logo一样的一个东东,我们很开心的看到了他,说明这个部分的程式没有问题,过了一段时间的延时进入了功能选择菜单界面,我们也会很开心,因为说明菜单那一部分的程式也没有问题,这里我们要提示的是,如果您发现程序迟迟没有出现一直停留在如下图17所示的界面上时,您千万不要紧张,认为是程序错了,这个是因为系统锁定,您只要点击“MENU”就可以打开系统,程序会自动的跑起来。
接下来,我们可以跑一下第一个例子,Login screen,这个例子操作起来很简单,点击下Login Screen,就进入了功能实现部分,有一个user name, 一个password,还有个login的按钮,标准的登陆界面,下面是一堆文字,大家可以看一看,是操作介绍来的,具体我就不翻译了,大家可以尝试的输入一些东西进入编辑框,然后点击login提交,将会有个对话框弹出,现实了您输入的内容,这个时候我们确认或者否认将会结束改程式功能回到菜单界面,到这里为止,这个程式功能的完整实现,我们可以见到如图18的显示实例。
下来我们要测试第二个实例,这个实例在上面的程序阅读中已经分析了下具体的功能,就是两个小球撞击的动画配合声音,但是我们一旦打开这个程式,到目前位置,作者还没有找到如何退出这个程式的办法,进入了一个程式功能的死循环,这里我们就要对程式的代码进行一个修改。
这里我们限定撞击30次后让他自动退出这个功能,退出程式功能我们想起来刚才做登录界面的时候的对话框确认按钮和否认按钮上的实现,我们回头看一下程式代码,马上能够发现一个非常讨人喜欢的函数:finish();这个时候我们再来重新阅读下CanvasExample这个java文件,CanvasExample的一个共有类,CustomView的一个保护类,继承并重写与view类,一个保护成员函数drawSprint,一个公有成员函数onDraw,公有的成员函数一般都是可以外部调用,外部为什么要调用呢?一般都是为了实现这真个类的功能,好了,这个应该是一个入手点,我们仔细来分析下代码,前面都是一些简单的赋值语句,对位置,颜色进行一些确认,接下来有一个if的判断, if((x_1 >= canvas.getWidth()))这里从这个判断以及下面实现我们可以确认这个是一个退出的出口,因为在这里有音频播放的停止和释放实现,并为下一次的发声音加载一个音频的资源,那我们就再以这里为入口,30次的循环思路其实非常之简单,一个循环计数器,一个判断,一个finish();即可,接下来我们就实现,首先定义一个变量,我们叫它CountTimer,整型变量,定义位置和X_1这些放在一起就可以了,初值为0;然后我们到 刚才我们看到的if判断的地方,在加载完音频资源后,我们写以下的代码:
/////////////////////////////////////
//here we need make a loop top counter
//because if i really don't know how
//to stop this game......unbelievable
//so I set it loop about 30 times.
//modify by mercury xu 20090315
/////////////////////////////////////
CountTimer+=1;
if(CountTimer >= 30)
finish();
////////////////////////////////////
注释的内容大家可以自己加,我们主要看实现,其实很简单了,三句话。不用过多的解释,放上去编译下,请大家自行调试试验下就知道了。
以上的工作完成,恭喜您,您的第一个基于Android下的实例程式已经完全调试完成!如果没有,请您回到上面出错的地方尝试修改,如还是没有解决请参考我提供的可以运行的实例。