J2ME MIDP2.0 实现摩西密码SOS的闪光!

MIDP2.0 的DISPLAY类里增加了后背闪光的功能flashBacklight().  我是用MOTO的V3, 有直接支持.  索爱和NOKIA他们有各自的IMPLEMENTATION.  我这里简单介绍一下MOTO的用法 :)

SOS的MORSE CODE是...---..., S 是3点,O是3横,呵呵,代表的意思有的说是: SAVE MY SHIP (救我的船) 或者 SAVE MY SOULS (救命), 其实据说没有什么实际意思

点的话就闪的时间短点, 横的话就闪的时间长点, 可以在flashBacklight(int interval)的INTERVAL里设置.

整个程序在一个THREAD里面一直循环, 直到你被救为止

先定义个MIDLET, 很简单的一个:

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MorseSOSMIDlet extends MIDlet {

 static MIDlet instance;
 static Canvas c;
 
 public MorseSOSMIDlet() {
  super();
  instance = this;
 }

 protected void startApp() throws MIDletStateChangeException {
  c = new SOSCanvas();
  Display.getDisplay(MorseSOSMIDlet.instance).setCurrent(c);
 }

 protected void pauseApp() {
 }

 protected void destroyApp(boolean b) throws MIDletStateChangeException {
  destroyApp(true);
  notifyDestroyed();
  c = null;
  instance = null;
 }
}

然后编个承接CANVAS类的子类:

import javax.microedition.lcdui.*;

public class SOSCanvas extends Canvas implements CommandListener, Runnable {

 private Command exitCmd = new Command("退出", Command.EXIT, 1);
 private Display display;
 
 public SOSCanvas() {
  addCommand(exitCmd);
  setCommandListener(this);
  display = Display.getDisplay(MorseSOSMIDlet.instance);
  Thread t = new Thread(this);
  t.start();
 }
 
 protected void paint(Graphics g) {
  g.setColor(0x00FFFFFF);
  g.fillRect(0,0,getWidth(),getHeight());
 }

 public void commandAction(Command c, Displayable d) {
  if (c == exitCmd) {
   MorseSOSMIDlet.instance.notifyDestroyed();
  }
 }

 public void run() {
  while (true) {
   try {
    Thread.sleep(1500);
    
    display.flashBacklight(1000);
    Thread.sleep(500);
    display.flashBacklight(0);
    Thread.sleep(500);
    display.flashBacklight(1000);
    Thread.sleep(500);
    display.flashBacklight(0);
    Thread.sleep(500);
    display.flashBacklight(1000);
    Thread.sleep(500);
    display.flashBacklight(0);
    Thread.sleep(500);
    
    display.flashBacklight(3000);
    Thread.sleep(1000);
    display.flashBacklight(0);
    Thread.sleep(1000);
    
    display.flashBacklight(3000);
    Thread.sleep(1000);
    display.flashBacklight(0);
    Thread.sleep(1000);
    
    display.flashBacklight(3000);
    Thread.sleep(1000);
    display.flashBacklight(0);
    Thread.sleep(1000);
    
    display.flashBacklight(1000);
    Thread.sleep(500);
    display.flashBacklight(0);
    Thread.sleep(500);
    display.flashBacklight(1000);
    Thread.sleep(500);
    display.flashBacklight(0);
    Thread.sleep(500);
    display.flashBacklight(1000);
    Thread.sleep(500);
    display.flashBacklight(0);
    Thread.sleep(500);
    
   } catch (Exception e) {
    // nothing
   }
  }
 } 
}

点的实现:

    display.flashBacklight(1000);
    Thread.sleep(500);
    display.flashBacklight(0);
    Thread.sleep(500);


横的实现

    display.flashBacklight(3000);
    Thread.sleep(1000);
    display.flashBacklight(0);
    Thread.sleep(1000);

不知道这样的做法是不是最高效的, 不过用起来还蛮好的.  欢迎各位指正!

J2ME(Java 2 Platform, Micro Edition)是由Sun Microsystems开发的一种Java平台,专门用于在移动设备上运行应用程序。MIDP(Mobile Information Device Profile)是J2ME的一个子集,它定义了在移动设备上运行的应用程序的规范和功能。而MIDP 2.0则是MIDP的第二个版本。 MIDP 2.0增加了许多新的功能和改进,使得开发者能够创建更强大和多样化的移动应用程序。它提供了一个可扩展的用户界面,包括支持图形、文本和交互控件。此外,MIDP 2.0还引入了支持浏览器和网络协议的API,使开发者可以轻松地在移动设备上进行网上浏览、发送和接收数据。 MIDP 2.0还加强了网络通信的能力,引入了新的网络连接API,如HTTP和Socket连接。这使得开发者能够通过互联网或网络进行数据交换和通信。同时,它还支持存储和管理数据的持久化功能,允许应用程序在重启后保留数据。 除了以上功能,MIDP 2.0还提供了音频和视频支持,使开发者能够创建媒体相关的应用程序。开发者还可以利用MIDP 2.0的游戏API创建游戏应用程序,包括图形、动画和触发事件等功能。 总之,J2ME MIDP 2.0是一种用于移动设备的Java平台和规范,提供了丰富的功能和API,使开发者能够创建各种各样的应用程序,包括用户界面、网络通信、数据存储、音频视频和游戏等。它的出现大大促进了移动应用程序的发展和普及。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值