资源描述:
《NEC手机JAVA中级讲座-第八讲NEC扩展》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八讲NEC扩展API1.引言 在上讲中,我们对网络的相关功能进行了解说。截止上讲以前的讲座,我们讲述的都是关于MIDP的JAVA相关技术的内容,本讲将收尾,介绍NEC扩展API。2.NEC扩展 NEC扩展API中有如下的类。类AudioClip处理声音数据类。已在第五讲解说。AudioListenerAudio事务监听器。已在第五讲解说。ImageEffector颜色变换类。将在本讲解说。ImageMap模拟PCG(プログラマブルキャラクタジェネレータ)类。因为能轻松的把多种画面分配在格子里,所以能很容易的制作出背景和棋面(
2、ImageMap)。不在本讲解说。Media取得媒体数据类。已在第五讲解说。NxCanvasNEC扩展canvas,支持多重按键。将在本讲解说。NxGraphicsNEC扩展Graphics。描画Sprite、ImageMap。将在本讲解说。PhoneControl控制震动、逆光类。不在本讲解说。SpriteSprite类。将在本讲解说。SpriteSet管理Sprite类。将在本讲解说。关于上表的ImageEffector、NxCanvas、NxGraphics、Sprite、SpriteSet,我们将按顺序展开介绍。2.1
3、.扩展图形类NxGraphics类是Graphics的扩展类。下面介绍可以实现的Sprite、ImageMap的描画以及矩形区域的复制。NxGraphics类定义了以下方法。voidcopyArea(intsx,intsy,intwidth,intheight,intdx,intdy)把Canvas描画的矩形区域复制后描画。利用此功能能够把描画过一次的东西复制下来进行描画,因此当描画相同内容的拷贝时,可以简化步骤。voiddrawImageMap(ImageMapmap,intx,inty)对将多种画面分配在格子里的Image
4、Map进行描画。voiddrawSpriteSet(SpriteSetsprites)描画Sprite。后面有Sprite的相关介绍。staticNxGraphicsgetNxGraphics(javax.microedition.lcdui.Graphicsg)取得NxGraphics对象。下面展示的是使用copyArea方法的范例。该范例使用copyArea对移动球的一部分进行复制。importjava.util.Timer;importjava.util.TimerTask;importjavax.microeditio
5、n.lcdui.Canvas;importjavax.microedition.lcdui.Graphics;importjavax.microedition.lcdui.Image;importcom.nec.graphics.NxGraphics;/***copyArea范例动画canvas*/publicclassCopyAreaMovingBallCanvasextendsCanvas{privateintx;//球的x坐标privateImageimg;privateTimertimer;privateTimerTa
6、sktask;/***构造函数*/publicTimerMovingBallCanvas(){//读取画面try{img=Image.createImage("/back.PNG");}catch(Exceptione){e.printStackTrace();}//设定Timer,TimerTasktimer=newTimer();task=newTimerMovingBallTask(this);timer.schedule(task,100,100);//从100毫秒后起每100毫秒执行一次任务}/***描画方法*/pr
7、otectedvoidpaint(Graphicsg){//清除画面g.setColor(255,255,255);//白g.fillRect(0,0,getWidth(),getHeight());//查看球g.setColor(255,0,0);g.drawString("copyAreaTest",0,0,Graphics.TOP
8、Graphics.LEFT);g.fillArc(x,50,40,40,0,360);//复制矩形区域NxGraphicsng=NxGraphics.getNxGraphics(g);ng.c
9、opyArea(x,50,20,20,x,100);}/***改变球的x坐标*/publicvoidincrement(){x+=3;}/***timertask*根据计时器设定的时间表执行run()方法。*/classTimerMovingBallTaskextendsTi