⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bball.java

📁 j2me手机上的音频开发
💻 JAVA
字号:
/* * @(#)BBall.java	1.7 04/03/11 * * Copyright (c) 1999-2004 Sun Microsystems, Inc. All rights reserved. * PROPRIETARY/CONFIDENTIAL * Use is subject to license terms */package example.audiodemo;import javax.microedition.midlet.*;import javax.microedition.lcdui.*;/* * this is a sample program to show ring tones synchronized with * selected background music. * It is based on the manyballs midlet. When a ball hits a wall, * a ring tone is heard. * * Usuage: Use right arrow key to add one more ball (5 is the maxium). *         Use left arrow key to delete one ball *         Use up   arrow key to increase the speed of ball *         Use down arrow key to reduce the speed of ball * * @version 1.7 */public class BBall extends MIDlet implements CommandListener, Runnable {    private static final String[] bgs = {"no background",                                         "wave background",                                         "tone seq background",                                         "MIDI background"};    static String wavbgUrl;    static String midbgUrl;    private Command exitCommand = new Command("Exit",					      Command.EXIT, 1);    private Command playCommand = new Command("Play",					      Command.ITEM, 1);    private Display display;    private int idx = 0;    private List theList;    private static final Object   gameLock = new Object();    private BallCanvas            game;    // if this MIDlet's startApp method is started    // for the first time    private boolean firstTime = true;    // pause/resume support    private boolean restartOnResume = false;    public BBall() {	display  = Display.getDisplay(this);	theList  = new List("Bouncing Ball", Choice.IMPLICIT);	for (int i = 0; i < bgs.length; i++) {	    theList.append(bgs[i], null);	}	wavbgUrl = getAppProperty("BBall-wav-URL");	midbgUrl = getAppProperty("BBall-MIDI-URL");	theList.addCommand(playCommand);	theList.addCommand(exitCommand);	theList.setCommandListener(this);    }    // also called from BallCanvas    public void displayList() {	display.setCurrent(theList);    }    /**     * Called when this MIDlet is started for the first time,     * or when the MIDlet returns from paused mode.     *     * If it is the first time, display the menu list.     *     * Otherwise, wake up the thread. If music was playing     * when the MIDlet was paused, call the game's     * start method.     */    public void startApp() {	if (firstTime) {	    displayList();	    firstTime = false;	} else {	    SmallBall.paused = false;	    if (game != null && restartOnResume) {		game.start();	    }	    restartOnResume = false;	}    }    /**     * Called when this MIDlet is paused.     * Pause the thread.     * If the game is not already paused, call its pause method.     * For consistency across different VM's,     * it's a good idea to stop the player if     * it's currently playing.     */    public void pauseApp() {	SmallBall.paused = true;	restartOnResume = (game != null && !game.isPaused());	if (restartOnResume) {	    game.pause();	}    }    /**     * Destroy must cleanup everything not handled     * by the garbage collector.     */    public void destroyApp(boolean unconditional) {	synchronized(gameLock) {	    if (game != null)		game.destroy();	}    }    /*     * Respond to commands, including exit     * On the exit command, cleanup and notify that the MIDlet has     * been destroyed.     */    public void commandAction(Command c, Displayable s) {	if (c == exitCommand) {	    synchronized(gameLock) {		if (game != null) {		    game.destroy();		    game = null;		}	    }	    destroyApp(false);	    notifyDestroyed();	} else if ((s == theList && c == List.SELECT_COMMAND) || c == playCommand) {	    idx = theList.getSelectedIndex();	    new Thread(this).start();	}    }    public void run() {	synchronized(gameLock) {	    if (game == null) {		game = new BallCanvas(this);	    }	    display.setCurrent(game);	    game.init(8, idx);	    if (game.needAlert()) {		Alert alert = new Alert("Warning", "Cannot create player", null, null);		alert.setTimeout(1000);		display.setCurrent(alert, game);	    }	    game.start();	}    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -