JBuilder 2005开发Applet游戏全接触 - 编程入门网
ot;外来客",客户机没有将其当作"自家人"来对待。所以Applet不能执行访问本地文件系统、执行本地程序,保存统计数据到文件也就发生异常了。在本章后面,我们将详细介绍如何通过数字签名的技术来绕过Applet的安全限制,让客户机将这个"外来客"宾至如归。
JBuilder 2005开发Applet游戏全接触(12)时间:2010-04-27 天极4、关注Applet生命周期 Applet在浏览器中运行时,第一次加载Applet,将调用init()方法,接着调用start(),当窗口关闭或页面替换时先调用stop()然后再调用destroy()。 因为我们的游戏是多线程的程序,当关闭浏览器时,如果Applet的字母下落线程还在运行可能会引发异常。在JBuilder中右击TypeTrainApplet.html,在弹出的菜单中选择Run using default,JBuilder使用AppletViewer运行TypeTrainApplet。启动游戏后直接关闭窗口,在信息窗格中将报告以下的异常信息: java.lang.NullPointerException at game.TypeTrainApplet$DropCharThread.draw(TypeTrainApplet.java:290) at game.TypeTrainApplet$DropCharThread.run(TypeTrainApplet.java:258) 这是由于关闭AppletViewer后,TypeTrainApplet画布的Graphics对象先被销毁,而字母下落线程依然调用访问这个对象,所以抛出空指针异常。 我们可以通过Applet的生命周期解决这个问题:Applet在被关闭前会调用stop()和destroy()方法。我们只要利用stop()方法就可以了,在stop()方法中置一个标识,线程通过判断这个标识就可以知道当前窗口是否关闭,当发现关闭时就不再运行。
Applet启动时调用start()方法,这方法里将窗口关闭标识置为false,如第6行所示,而当窗口关闭时stop()方法被调用,停止游戏并置窗口关闭标识,如第10~11行所示。字母下落线程的程序也要作相应的调整,在进入线程和结束线程都判断是否关闭了窗口。 JBuilder 2005开发Applet游戏全接触(13)时间:2010-04-27 天极打包并进行数字签名 浏览器对Applet的数字签名支持并没有一个统一的标准,但是一 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |