Starアプリでiウィジェットを作成してみる第3回::サンプルコードを実行してみる

By uchida - 09/06/12 - このエントリをはてなブックマークに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをFC2ブックマークに追加

iアプリ開発ツールの中にサンプルが同封されています。
フルアプリ・ミニアプリ・フル+ミニアプリそれぞれにCarRaceのコードがあります。
今回はこの中でミニアプリ用のCarRaceMiniを取り上げます。
 

実行してみる

eclipseにプロジェクトをインポートして実行するか、CarRaceMini\CarRaceMini.jamファイルをダブルクリックで直接エミュレータを起動することができます。
 
e38394e382afe38381e383a3-21
 
こんな風にアプリが起動します。
 

コードを覗いてみる

 
・CarRace.java
これはiアプリのメインのクラスを書いたファイルになります。
アプリケーションを起動するための儀式的なことを行っています。

public class CarRace extends StarApplication { ...

ここで分かるのはStarApplicationを継承していますので、このStarApplicationが大元となります。
 

public void started(int launchType) {...

ここがアプリケーション起動時に最初に呼ばれるメソッドとになります。
 

 MiniCanvas mini = new MiniCanvas();
 Display.setCurrent(mini);

上記2行で画面に表示しています。後で解説するMiniCanvasクラスを生成してそれを、画面に表示するメソッドに渡して画面に表示します。
 
 
・MiniCanvas.java
このファイルはミニアプリの本体となる部分です。
全て解説していくと若干文章が長くなるので概要だけ押さえていきます。

class MiniCanvas extends Canvas {...

Canvasクラスを継承しています。
このCanvasは画面になにかを表示したりします。これを継承することによりMiniCanvasで画面に文字などを表示することができます。

MiniCanvas() {...

これはコンストラクタといって、オブジェクトが生成された時初めに実行される所です。この中でボタンの設定を行っています。

public void paint(Graphics g) {...

Canvasから継承したメソッドで、描画処理を行う所です。
ここでは、スクラッチパッドからハイスコアを読み込んで、それを表示したり、タイトルを表示したりしています。
 

public void processEvent(int type, int param) {...

ここではイベントが発生した時の処理が書かれています。
フルアプリを起動したり、ミニアプリを終了する処理が書かれています。
 

public int loadHiScore() {...

CarRaceMini独自のクラスになります。
ここでスクラッチパッドの読み込みなどが行われます。
とても勉強になりますね。
 

設定ファイルも覗いてみる

binフォルダの中に.jamファイルがあると思います。
ここで注目したいのが以下のコードです。

Pallet = 160x160:160x80:0:80:title.gif

このPalletはアプリがミニアプリとして実行された場合のパレットフォーマットを指定します。以下のように指定します。
 <PalletSize>:<PalletDrawArea>:<PositionX>:<PositionY>:<PalletFace>
1つ目:<PalletSize>ミニアプリのサイズ
2つ目:<PalletDrawArea>ミニアプリ上の描画領域のサイズ
3つ目:<PositionX>