2 月 17 2007

Flash Lite2.0 開発事はじめ

Published by haga at 3:36 under actionscript2.0, flash, flash lite2.0, programing

つい3日前くらいまで、自分がFlash Lite2.0を触ることになるとは思っていなかったんですが 仕事で開発することになったので、メモ。

まずここから「Flash Professional 8 用 Flash Lite 2 アップデート」をダウンロードして Flash Professional 8で、Flash Lite2.0を開発できるようにしておきます。 http://www.adobe.com/jp/support/flash/downloads.html

それからLite2.0の情報を集めます。 http://www.dango-itimi.com/blog/archives/2006/000912.html http://www.trick7.com/blog/flash_lite/ この辺のブログが参考になりました。

各端末の情報とか ソフトバンク端末情報 ドコモ端末情報 au端末情報 で、自分でマニュアルから調べたLite2.0特有の事項は

  1. 関数内ではdeleteしてもメモリ解放は行われないその場合、変数にnullを与えることで、ガベージコレクションから消える。
  2. コンパイル時にSWFのファイルを削減するためにクラスを除外できる。
  3. ヒープメモリは各デバイスに依存する。

という感じ。

で、今回僕は1機だけ実機を用意できたのですが、すべての人が実機を用意できるわけじゃないので IDE上の「デバイスエミュレーション」が鍵になるのですが、デフォルトでは全然使えるものがないので 自分で用意しました。

僕の場合SoftBank系だけカバーすれば良かったので 画面解像度別に

  1. QVGA
  2. VGA
  3. WQVGA
  4. QVGA

のSWF表示領域を調べて(僕はクライアントさんから教えてもらった)設定ファイルを作ります。 設定ファイルはここにおいておきますね。

Flash Lite2.0 デバイス設定ファイル

Flash8をインストールしたディレクトリの 「Flash 8/ja/Configuration/Mobile/Devices/」 に放り込んでください。 設定ファイル自体シンプルなので、画面解像度と名前くらいなら簡単に作れます。

fl2_070217_01.png

きっとこんな感じになるでしょう。

ついでに、僕がつくった便利クラスも 対して便利なわけでなく、fscommand2とか書きたくなかっただけですが・・。 特に「getScreenType()」は現在のSoftBank用に作ったメソッドで 他のキャリアや今後も使える保証は全然ありません。

/**
* デバイス用便利クラス
* デバイス操作に使える静的メソッド群
* @author Mitsuru Haga<mitsuru.haga@gmail.com>
* @version  2007/02/16 17:36
*/

class DeviceUtil {
 
  public static var QVGA:String = 'QVGA';
  public static var VGA:String = 'VGA';
  public static var WQVGA:String = 'WQVGA';
  public static var WVGA:String = 'WVGA';
 
  /**
  * デバイスのモデルIDを取得する
  * @return
  */

  public static function getDevice():String{
    fscommand2("GetDevice", '__device__');
    return _level0.__device__;
  }
 
  /**
  * レンダリングに使用する表示領域のサイズを設定します。
  */

  public static function setFullScreen():Number{
    return fscommand2("FullScreen", true);
  }
 
  /**
  * 現在使用できるヒープメモリの量をキロバイトで返します。
  */

  public static function getFreeMemory():Number{
    return fscommand2("GetFreePlayerMemory");
  }
 
  /**
  * 割り当てられたヒープメモリの合計量をキロバイトで返します
  * @return
  */

  public static function getTotalMemory():Number{
    return fscommand2("GetTotalPlayerMemory");
  }
 
  /**
  * 画面の解像度を取得する
  * @return {x:Number, y:Number}
  */

  public static function getScreenResolution():Object{
    return {
      x:System.capabilities.screenResolutionX,
      y:System.capabilities.screenResolutionY
    };
  }
  /**
  * スクリーンタイプを取得する静的メソッド
  * どのタイプにも当てはまらない場合はQVGAとして返す
  * SoftBank用(07/02/16現在)
  * @return String  スクリーンタイプを表す文字列
  */

  public static function getScreenType():String{
    var size:Object = getScreenResolution();
    var isQVGA:Boolean = size.x == 236 && size.y == 261;
    var isWQVGA:Boolean = size.x == 240 && size.y == 350;
    var isVGA:Boolean = size.x == 480 && size.y == 540;
    var isWVGA:Boolean = size.x == 236 && size.y == 341;
    return ( isQVGA ) ? QVGA : ( isVGA ) ? VGA : ( isWQVGA ) ? WQVGA : ( isWVGA ) ? WVGA : QVGA;
  }
}


Trackback URI | Comments RSS

Leave a Reply