www.pudn.com > 手机网游源码.rar > Welcom.java


package com.dfun.blackjack; 
import javax.microedition.lcdui.*; 
import com.nokia.mid.ui.*; 
 
/************************************************** 
 * @author Beetle 
 * 类功能介绍:欢迎画面 
 **************************************************/ 
public class Welcom 
	extends FullCanvas 
	implements Runnable { 
	/******************************************************* 
	 * 定义公共变量 
	 *******************************************************/ 
	private int width, height; //屏幕宽高 
	private int bgWidth, bgHeight; //画布宽高 
	private int balanceHeight, balanceWidth; //128,128屏幕与现在屏幕的差别 
	private Display display; //显示管理器 
	private Image bufferImg; //双缓存图片 
	private Graphics bg; //双缓存画布 
	private Thread refresh; //刷新线程 
	private Thread initNet; //初始化网络连接线程 
	private boolean isRefresh; //是否进行刷新 
	private Image img[]; //图片数组 
	private Main main; //主控程序 
	private Connection conn; //连接对象 
	private int plan; //进度条的进度值 
	private int hint; //提示的状态 
	private boolean isHint; //是否提示 
	/******************************************************* 
	 * 功能介绍:构造函数 
	 * 输入参数:显示管理,连接对象,手机号码,主程序 
	 *******************************************************/ 
	public Welcom(Display display, Connection conn, Main main) { 
		/******************************************************* 
		 * 初始化公共变量 
		 *******************************************************/ 
		this.main = main; 
		this.display = display; //初始化显示管理器 
		this.conn = conn; //连接对象 
		isRefresh = true; //默认持继刷新 
		isHint = true; //默认提示 
		width = getWidth(); //初始化屏幕宽度 
		height = getHeight(); //初始化屏幕高度 
		bgWidth = 176; //画布宽 
		bgHeight = 208; //画布高 
		bufferImg = Image.createImage(176, 208); //创建双缓存图像 
		try { 
			bg = bufferImg.getGraphics(); //创建双缓存画布 
		} 
		catch (Exception e) { 
			System.out.println("load image error"); 
		} 
		bg.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_SMALL)); 
		img = main.loadImg(1); //装入欢迎画面的图片 
		plan = 36; //默认进度为零 
		refresh = new Thread(this); //进行持续刷新 
		refresh.start(); //启动刷新 
		initNet = new Thread(this); //进行初始化连接网络 
		initNet.start(); 
	} 
 
	public void paint(Graphics g) { 
		try { 
			if (isRefresh == true) { 
				backDrop(); 
				showGauge(); 
				g.drawImage(bufferImg, width / 2, height / 2, Graphics.HCENTER | Graphics.VCENTER); //将双缓存图片绘到屏幕上 
			} 
		} 
		catch (Exception e) { 
			System.out.println("welcom paint error"); 
		} 
	} 
 
	public void run() { 
		if (Thread.currentThread() == refresh) { //刷新线程 
			try { 
				while (isRefresh) { 
					Thread.sleep(80); //按指定毫秒刷一次屏 
					repaint(); 
				} 
			} 
			catch (Exception e) { 
 
			} 
		} 
 
		if (Thread.currentThread() == initNet) { //初始化gprs并预先取得房间及用户总分 
			if (conn.initNet()) { 
				isRefresh = false; 
				conn.sendUserInfo(main.strPhoneNumber, main.strUserName, main.strPassword); //发送用户信息 
				if (conn.getHouseList()) { //读取房间列表 
					main.showHall(); 
				} 
				else { 
					display.setCurrent(new Alert("系统提示", "对不起连不到服务器,请稍后重试!", null, AlertType.INFO)); 
					main.exit(); 
				} 
			} 
			else { 
				display.setCurrent(new Alert("系统提示", "对不起连不到服务器,请稍后重试!", null, AlertType.INFO)); 
				main.exit(); 
			} 
			return; 
		} 
 
	} 
 
	/***************************************************** 
	 * 功能介绍:初始化网络,显示进度条 
	 * 输入参数:无  36 154 
	 * 输出参数:无 
	 ******************************************************/ 
	public void showGauge() { 
		if (plan < 129) { 
			plan = plan + 1; 
		} 
		for (int i = 36; i <= plan; i++) { 
			bg.drawImage(img[1], i, 153, Graphics.LEFT | Graphics.TOP); 
		} 
 
	} 
 
	/******6583151 
	 * ************************************************ 
	 * 功能介绍:显示背景 
	 * 输入参数:无 
	 * 输出参数:无 
	 ****************************************************/ 
	public void backDrop() { 
		bg.setColor(0x000000); 
		bg.drawImage(img[0], 0, 0, Graphics.TOP | Graphics.LEFT); 
		bg.setColor(0x0066cc); 
	} 
 
	public void keyPressed(int keyCode) { 
		if (getGameAction(keyCode) == Canvas.FIRE) { 
			main.exit(); 
		} 
	} 
}