Date:  Wed, 13 May 2009 17:10:04 +0900
Subject:  【オブジェクト倶楽部: 2009-14号】
X-Mail-Count: 00289

       ┏━━━━━━━━━━━━━━━━━━━━━━━━━━■
       ┃                         ■┃
      ●┃● ● オ ブ ジ ェ ク ト 倶 楽 部   ■ ┃
       ┃                       ■  ┃
       ┗━━━━━━━━━━━━━━━━━━━━━━■━━━┛
                          No.279 2009/05/13

■ I N D E X
┃
┣【プログラミング】IzPackで作るクロスプラットフォームインストーラ [1]
┣【プログラミング】Flex 3 SDKとPapervision3Dで三次元を遊ぶ [3]
┗【アンケート】気になるシステム業界 ホントのところ

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■━
■
┗【プログラミング】IzPackで作るクロスプラットフォームインストーラ [1]

こんにちは、村上です。
今回から「IzPackで作るクロスプラットフォームインストーラ」と題して、イ
ンストーラ作成の連載をはじめます。

● はじめに
いきなりですが、インストーラって地味ですよね。あまり日の当たらない存在
だと感じるのは私だけでしょうか?しかし、インストーラの存在は重要です。
「アーカイブファイルをこのパスに展開してこの設定をしてください」という
よりは、インストーラが用意されている方が、ユーザにとって敷居は低いです
し、ユーザがコンピュータにあまり詳しくない場合なら尚更です。
そこで、Javaで作成されたクロスプラットフォームインストーラであるIzPack
[*1]の登場です。私はJavaでプログラムを書くことが多いのですが、せっかく
アプリケーション自体は複数OSでそのまま動作するのに、インストーラをそれ
ぞれのプラットフォーム毎に作成しないといけないのでは面倒だと思っていま
した。アプリケーションがWrite Once Run AnywhereならインストーラもWrite
Once Run Anywhereでいきたいですしね。

● IzPack
IzPackはJavaで書かれたインストーラ作成ツールです。IzPackを利用するには
Java1.5以降が必要です。IzPackの主な特徴として以下の機能があります。

 * インストーラの構成はXMLで記述。
 * 国際化は容易に行える。各言語毎のファイルを用意するだけ。
 * Antのタスク、Mavenのプラグインも用意されている。
 * 変数を置換する機能がある。
   インストール時の値をインストール処理に利用できます。
 * 条件(OSやJavaのバージョンなど)に応じてインストール処理を変えることが
   できる。
 * インストール処理中に外部プロセスを実行できます。

他にも様々な機能があります。本連載でいろいろ紹介していく予定です。

● インストール
早速IzPackをインストールします。IzPackを使用する方法としてMavenから使用
するもあり、その場合はIzPack自体のインストールは必須ではありませんが、
最初はインストーラでIzPackをインストールしてみることをお勧めします。
IzPackのインストーラ自体がIzPackで作成されているので、IzPackで作成され
たインストーラの動作をみてみるには丁度いいでしょう。
最初に、IzPackを入手します。IzPackのダウンロードサイト[*2]から、ダウン
ロードできます。また、JDKをインストールされていない方は、Sunのウェブサ
イト[*3]から最新のJDKをダウンロードしてインストールしてください。尚、本
連載では現時点(2009/5/12時点)で最新のIzPack4.3.0とJDK1.6.0_13を使用しま
す。今後、断りが無い場合はOSはWindows XP Professional SP3を使用する前提
で記述しますが、LinuxなどJavaが使える環境であれば同様に実行できるはずで
す。

では、ダウンロードしたIzPackをインストールします。IzPackのインストール
と使用にはJava1.5以降が必要なので、インストールされていない方は、インス
トールと環境変数JAVA_HOMEを設定してください。Javaのインストールと設定が
終わったら、いよいよIzPackのインストールです。

コマンドプロンプトで以下のように入力してインストーラを起動します。

 > java -jar IzPack-install-4.3.0.jar

あとはインストーラの言うとおりにインストール処理を進めます。デフォルト
ではC:\Program Files\IzPack(Linuxなら/usr/loca/IzPackもしくは~/IzPack)
にインストールされるはずです。
以降は C:\Program Files\IzPack にインストールしたという前提で記述してい
きます。

● まとめ
今回は、IzPackの紹介とインストールまでをお送りしました。次回からは実際
にインストーラの作成をしながらIzPackの使用方法、個々の機能の紹介をして
いきます。それでは、次回までさようなら。(村上)

[*1] http://izpack.org/
[*2] http://dist.codehaus.org/izpack/releases/4.3.0/IzPack-install-4.3.0.jar
[*3] http://java.sun.com/javase/ja/6/download.html
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
/community/object_ml/estimate?vol=E0018-00&choice=0
普通:
/community/object_ml/estimate?vol=E0018-00&choice=1
イマイチ:
/community/object_ml/estimate?vol=E0018-00&choice=2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■━
■
┗【プログラミング】Flex 3 SDKとPapervision3Dで三次元を遊ぶ [3]

こんにちは、オブジェクト倶楽部の水越です。予告どおり、今回はこれまでの
サンプルのソースコードを解説します。第1回も第2回も大体同じソースコード
なので、第1回のソースコードを解説して、第2回の分は差分を簡単に紹介しま
す。

★ 今回のサンプル
http://dl.getdropbox.com/u/227796/flex_pv3d/1/Sample.swf
今回は第1回のサンプルをそのまま使います。

★ ソースコードの構成
ソースコードはここを見てください。45行の短いソースコードです。
http://dl.getdropbox.com/u/227796/flex_pv3d/1/Sample.as
このソースコードを(1)クラス宣言、(2)コンストラクタ、(3)handleEnterFrame
メソッド、(4)movedメソッドの4つの部分に分けて解説します。ちなみに本連載
では、できるだけ短く簡潔に、でも見た目はそこそこに、という方針でソース
コードを書いています。

★ (1)クラス宣言 l.1〜l.45 (メソッドの外側)
package
{
   import flash.display.*;
   ...

   public class Sample extends ReflectionView
   {
       ...
   }
}
クラス宣言部分は一般的なActionScriptのクラス宣言どおりです。注目する部
分は、Papervision3Dで提供しているReflectionViewクラスを継承している点で
す。本来なら三次元の表示をするためにカメラや視点などのいくつか面倒な設
定が必要なのですが、ReflectionViewクラスはそれらの設定を適当に行い、さ
らに鏡面にしてくれるのです。使いやすいし見た目が良くなるのでこういった
サンプルには重宝します。

★ (2)コンストラクタ l.16〜l.29
public function Sample()
{
   var material:BitmapFileMaterial = new BitmapFileMaterial("logo.gif");
   var mlist:MaterialsList = new MaterialsList({all:material});

   var cube:Cube = new Cube(mlist, 200, 200, 100, 2, 2, 2);
   cube.y = 50;
   scene.addChild(cube);

   camera.target = cube;

   addEventListener(Event.ENTER_FRAME, handleEnterFrame);
   stage.addEventListener(MouseEvent.MOUSE_MOVE, moved);
}
Sampleクラスのコンストラクタで箱を1個作成しています。画像を貼り付けると
立体感が出て見た目が良くなるので、オブジェクト倶楽部のロゴを張り付けま
した。イベントリスナーとして下記の2つのメソッドを追加しています。

★ (3)handleEnterFrameメソッド l.31〜l.34
private function handleEnterFrame(e:Event):void
{
   singleRender();
}
画面の更新毎に呼ばれるメソッドです。まあ、ReflectionViewクラスを使うと
きのお約束だと思ってください。

★ (4)movedメソッド l.36〜l.43
public function moved(e:MouseEvent):void
{
   var c:Number = 3 * mouseX / stage.width;

   camera.x = Math.sin(c) * 400;
   camera.z = Math.cos(c) * 400;
   camera.y = mouseY;
}
マウスが動いたときに呼ばれるメソッドです。マウスのX座標に応じてカメラの
位置をXZ平面上を回転させます。前回語ったマウスに対する「反応」はここで
実現しています。

★ 第1回と第2回の差分
第2回のサンプルとソースコードはここです。
http://dl.getdropbox.com/u/227796/flex_pv3d/2/bin/2.swf
http://dl.getdropbox.com/u/227796/flex_pv3d/2/src/Sample.mxml
ボタンを簡単に使いたかったので、ActionScriptファイルではなくMXMLファイ
ルにしました。箱は3つにしました。handleEnterFrameメソッドに3つの箱を上
下に動かすコードを追加しています。また、clickedメソッドで、マウスに対す
る「反応」をon/offできるようにしています。変更点はそんなところですね。

★ まとめ
第1回、第2回のソースコードを解説しました。Papervision3Dで提供されている
便利クラスを使っているだけなので、たいしたことはしていませんね。次回か
らは別のライブラリと組み合わせて遊んでみましょう。(水越)

★ これまでの記事
1) /ml-arch/magazine/278.html
2) /ml-arch/magazine/283.html
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
/community/object_ml/estimate?vol=E0017-02&choice=0
普通:
/community/object_ml/estimate?vol=E0017-02&choice=1
イマイチ:
/community/object_ml/estimate?vol=E0017-02&choice=2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■ 
■
┗【アンケート】気になるシステム業界 ホントのところ

今週は「普段、紫外線対策してますか?」のホントのところ。
スポーツやレジャーなどアウトドアを楽しむ時には紫外線対策をしっかりして
いるけど、毎日の通勤時等はそんなに気にしていない、という方は多いのでは
ないでしょうか?紫外線は、シミやシワといった美容面だけでなく、皮膚がん
の原因になることも。老若男女関係なく、対策はしっかり行いたいですね。

  日焼け止めを使っています。
     /special/kininaru/vote?vol=245&choice=0
  日傘を使っています。
     /special/kininaru/vote?vol=245&choice=1
  帽子や手袋、サングラス等の小物を使っています。
     /special/kininaru/vote?vol=245&choice=2
  普段は気にしていません。
     /special/kininaru/vote?vol=245&choice=3
  むしろ日焼けしたいです。
     /special/kininaru/vote?vol=245&choice=4
  それは秘密です。
     /special/kininaru/vote?vol=245&choice=5
  ちょっと語らせて!
     詳細をこのメールに返信ください!!

アンケート結果はオブジェクト倶楽部サイト上にて公開します。お楽しみに。
なお、前号「自転車通勤してますか?」の結果は公開中。ぜひご覧下さい。
⇒/special/kininaru/vol244/PlonePopoll_results2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
■
┗編集後記

こんにちは、編集人のナガタユウコです。実に3週間ぶりのメルマガ発行だった
ので、なんだかいつもより若干手間取ってしまい、たった3週間で衰える自分の
記憶力に愕然としました・・・!夏に向けてダイエットを始めたのですが、体
だけでなく、頭も鍛える必要がありそうです・・・あーあ。

今週の強引な一言
*** 災難の先触れはない(ことわざ) ***
災難はいつ来るかわからないから、平素の対策が大切であること。
順調に見えているプロジェクトでも、突然、思わぬ事態や危機がおとずれるこ
とも。だからといって、全ての問題を予測してそれに対応するのは無理ですよ
ね。でも、「自分のプロジェクトが今どういう状態なのか」を常に見極め把握
しておくことで、不測の事態が起こった時に、迅速に対応できるかもしれませ
ん。
出典参考:故事ことわざ辞典 東京堂出版
(ナガタユウコ)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
● ご意見、ご感想は         ⇒このメールに返信ください
〇 配信中止、アドレス変更は ⇒/community/object_ml/help/
〇 免責事項、過去の記事は   ⇒/community/object_ml/
■ 発行:オブジェクト倶楽部 ⇒http://ObjectClub.jp/
Copyright (c)2003-2009 オブジェクト倶楽部. All Rights Reserved.
powered by Eiwa System Management, Inc.