首页 | 供应信息 | 求购信息  | 下载系统 | 技术资讯 | 企业信息 | 产品信息 | 论文信息 | 展会信息 | 在线工具
作者: 发布时间:2012-05-08 来源: 繁体版
■前言在前一讲中我们讲述了如何利用低级API制作图表应用程序的方法。如果仅仅是图表内容的表示,那么在WEB上就可以用静止的页面表示。但是在手机应用程序中表示的话,就能让图表内容具有动感。这就是应用程序与WEB的区

■前言3PP自动化在线网

在前一讲中我们讲述了如何利用低级API制作图表应用程序的方法。如果仅仅是图表内容的表示,那么在WEB上就可以用静止的页面表示。但是在手机应用程序中表示的话,就能让图表内容具有动感。这就是应用程序与WEB的区别,这也正是其优点所在。在本讲中我们将进一步讲述如何在手机应用程序中制作动画,并详细介绍其具体操作方法。3PP自动化在线网

■4-1动画3PP自动化在线网

基本上,动画能够表现出文字、图形、图片等的描绘位置和画面自身的连续变化。目前的程序中,按下按键,就会实行既定的方法。直到实行完既定方法之后才能进行其他方法操作。但是,表示动画过程中,不实行动画表示以外的方法就没有什么意义,因此应该有必要在表示动画的同时也可以实行其他的方法。所以掌握线程和计时器技术的知识和应用是必不可少的。接下来,我们将详细介绍线程和计时器。3PP自动化在线网

■4-1-1线程3PP自动化在线网

线程是执行程序的最小单位,用来执行Standalone的Java应用程序的main()方法。当你需要同步执行多个操作,可以用多线程并发执行。使用这种线程的程序被称为“多线程程序”。3PP自动化在线网

■4-1-1-1线程的使用3PP自动化在线网

首先我们尽快学习怎样使用“线程”。有两种方法能使用线程:Runnable接口的使用方法和Thread类的继承类的定义方法。在此,我们使用前一个方法—实现Runnable接口的方法。3PP自动化在线网

实现Runnable接口的类必须要覆盖run()方法。覆盖的run()方法中记述了用线程执行的处理。(ex.1)3PP自动化在线网

classTestCanvasextendsCanvasimplementsRunnable{3PP自动化在线网

/**3PP自动化在线网

*线程执行的处理3PP自动化在线网

**/3PP自动化在线网

publicvoidrun(){3PP自动化在线网

//记述处理3PP自动化在线网

.3PP自动化在线网

.3PP自动化在线网

}3PP自动化在线网

/**3PP自动化在线网

*描绘方法3PP自动化在线网

**/3PP自动化在线网

publicvoidpaint(Graphicsg){3PP自动化在线网

//描绘处理3PP自动化在线网

.3PP自动化在线网

.3PP自动化在线网

}3PP自动化在线网

}3PP自动化在线网

ex.13PP自动化在线网

另外一种方法是使用线程类Thread。如下所示:用构造函数传递一个参数到该类的实例,该参数是实现Runnable接口的。使用start()方法就启动该线程了。(ex.2)3PP自动化在线网

Runnablerunnable=newTestCanvas();//实现Runnable类3PP自动化在线网

Threadthread=newThread(runnable);3PP自动化在线网

thread.start();3PP自动化在线网

ex.23PP自动化在线网

■4-1-1-2制作简单的动画3PP自动化在线网

接着我们来看线程如何被用于制作简单的动画。在下面的实例中,球从左向右运动。(ex.3)3PP自动化在线网

importjavax.microedition.lcdui.Display;3PP自动化在线网

importjavax.microedition.midlet.MIDlet;3PP自动化在线网

importjavax.microedition.midlet.MIDletStateChangeException;3PP自动化在线网

/**3PP自动化在线网

*球飞出去的实例动画3PP自动化在线网

*/3PP自动化在线网

publicclassMovingBallextendsMIDlet{3PP自动化在线网

privateDisplaydisplay;3PP自动化在线网

privateMovingBallCanvascanvas;3PP自动化在线网

/**3PP自动化在线网

*构造函数3PP自动化在线网

*/3PP自动化在线网

publicMovingBall(){3PP自动化在线网

display=Display.getDisplay(this);3PP自动化在线网

canvas=newMovingBallCanvas();3PP自动化在线网

}3PP自动化在线网

/**3PP自动化在线网

*运行时的处理3PP自动化在线网

*/3PP自动化在线网

protectedvoidstartApp()throwsMIDletStateChangeException{3PP自动化在线网

display.setCurrent(canvas);3PP自动化在线网

}3PP自动化在线网

protectedvoidpauseApp(){}3PP自动化在线网

protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{}3PP自动化在线网

}3PP自动化在线网

importjavax.microedition.lcdui.Canvas;importjavax.microedition.lcdui.Graphics;3PP自动化在线网

/**3PP自动化在线网

*球飞出去的实例动画的canvas。3PP自动化在线网

*/3PP自动化在线网

publicclassMovingBallCanvasextendsCanvasimplementsRunnable{3PP自动化在线网

privateintx;//球的X坐标3PP自动化在线网

/**3PP自动化在线网

*构造函数3PP自动化在线网

*/3PP自动化在线网

publicMovingBallCanvas(){3PP自动化在线网

Threadth=newThread(this);3PP自动化在线网

th.start();3PP自动化在线网

}3PP自动化在线网

/**3PP自动化在线网

*线程运行的处理3PP自动化在线网

*/3PP自动化在线网

publicvoidrun(){3PP自动化在线网

while(true){3PP自动化在线网

x+=3;//更改球的坐标3PP自动化在线网

repaint();//再次描绘3PP自动化在线网

try{3PP自动化在线网

Thread.sleep(100);//100毫秒待机3PP自动化在线网

}catch(InterruptedExceptione){3PP自动化在线网

}3PP自动化在线网

}3PP自动化在线网

}3PP自动化在线网

/**3PP自动化在线网

*描绘方法3PP自动化在线网

*/3PP自动化在线网

protectedvoidpaint(Graphicsg){3PP自动化在线网

//清除画面3PP自动化在线网

g.setColor(255,255,255);//白色3PP自动化在线网

g.fillRect(0,0,getWidth(),getHeight());3PP自动化在线网

//表示球3PP自动化在线网

g.setColor(255,0,0);3PP自动化在线网

g.fillArc(x,50,20,20,0,360);3PP自动化在线网

}3PP自动化在线网

}3PP自动化在线网

Figure13PP自动化在线网

■4-1-1-3线程的待机处理3PP自动化在线网

■4-1-1-3线程的待机处理3PP自动化在线网

我们看看run()是如何支持等待机制的。如果没有任何等待,球会迅速从左向右飞而我们无法察觉。为此,执行Thread中的静态方法sleep。在其参数中指定等待时间(单位毫秒)。(ex.4)3PP自动化在线网

Figure13PP自动化在线网

3PP自动化在线网

4-1-13PP自动化在线网

-3线程的待机处理3PP自动化在线网

我们看看run()是如何支持等待机制的。如果没有任何等待,球会迅速从左向右飞而我们无法察觉。为此,执行Thread中的静态方法sleep。在其参数中指定等待时间(单位毫秒)。(ex.4)3PP自动化在线网

Thread.sleep(100);//100毫秒待机3PP自动化在线网

ex.43PP自动化在线网

如此例所示,处理和处理之间能够待机100毫秒,按另外观点看,与在100毫秒的定期间隔下运行处理是一样的。定期间隔下的处理,使用名为Timer的类同样能够实现。下面说明一下Timer。3PP自动化在线网

■4-1-2Timer3PP自动化在线网

JAVA提供了计时器功能,它能有规则地、重复地执行或者在指定时间里执行。线程的运算可以是连续的,而不仅仅是按规则的进度。计时器的便利在于系统已经为你准备好特定的方法用于在指定时间或定时执行。3PP自动化在线网

■4-1-2-1时间的使用3PP自动化在线网

Timer类和TimerTask类能够实现计时器的功能。3PP自动化在线网

实例化一个TIMER的类,再调用一个继承了TIMERTASK的类做SCHEDULE。这样,TimerTask子类的run()就会在指定时间或周期被Timer实例呼叫。(表1) 3PP自动化在线网

360截图20120507112220625.jpg


如何制作动画程序
 1/4    1 2 3 4 下一页 尾页
评论】【加入收藏夹】【 】【关闭
※ 相关信息
无相关信息
※ 其他信息
访问数: | 共有条评论
发表评论
用户名:
密码:
验证码: 看不清楚,点击刷新
匿名发表

 搜索新闻
[提交投稿]  [管理投稿]
 最新新闻
 热点新闻
数据加载中..

网站地图
Autooo.Net 版权所有
Copyright © 2007--2014 All rights reserved