Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

This page was last modified 10:35, 6 June 2008.

任意の画面方向で動作するFlash Liteアプリケーションの作成方法

From Forum Nokia Wiki


原文(英語): How to make a Flash Lite application running in any screen orientation

対象となるバージョン: Flash Lite 2.x

一部のS60 3rd edition端末は、縦長(portrait)方向と横長(landscape)方向を端末機能として切り替えることができ(N93, N95など)、サードパーティのアプリケーションを使ってできる端末もあります(N73, N80などは、rotateMeを使用することができます)。

デフォルトでは、Flash Liteアプリケーションは、1つの画面サイズのみサポートします(ドキュメントプロパティタブで定義される)。

アプリケーションを定義したサイズと異なる画面サイズで起動した場合、Flash Playerはドキュメントのサイズを変更し、アプリケーションの両サイドに境界線を追加します。

縦長(portrait)モードでのFlash Liteアプリケーション
縦長(portrait)モードでのFlash Liteアプリケーション
横長(landscape)モードでの同じアプリーケーション
横長(landscape)モードでの同じアプリーケーション


外部のSWFファイルを使用する

  • 2つのSWFファイルを作成します。1つは縦長(portlait)方向のアプリケーション、もう1つは横長(landscape)方向のアプリケーションとします。この例では、それらをそれぞれmyApp_portrait.swf(240x320)、myApp_landscape.swf(320x240)と呼びます。
縦長(portlait)サイズのフレーム
縦長(portlait)サイズのフレーム
横長(landscape)サイズの同じフレーム
横長(landscape)サイズの同じフレーム
  • 新たにFlash Liteアプリケーションを作成します(myApp.swf)。
  • ドキュメントプロパティタブを使用し、ドキュメントの幅と高さを指定できる最大値(ここでは320x320)に変更します。
    Image:square_size.jpg
  • myApp.flaファイルの最初のキーフレームに、下記コードを追加します。
stop();
 
fscommand2("FullScreen", true);
 
/* Set scaleMode to "noScale" setting: the SWF will not be scaled
when the size of the screen device changes*/
Stage.scaleMode = "noScale";
 
//Set the current alignment of the Flash movie to "Top Left"
Stage.align = "TL";
 
// Create a new movie Clip
this.createEmptyMovieClip("container",this.getNextHighestDepth());
container._x = 0;
container._y = 0;
 
//Detect the screen size and load the correct file
if (Stage.width == 240) {
	container.loadMovie("file://E:/Others/myApp_portrait.swf");
} else {
	container.loadMovie("file://E:/Others/myApp_landscape.swf");
}
  • myApp.swfを起動すると、アプリケーションを現在の画面方向に合わせて表示します。

2つのSWFファイルにおいて、_rootレベルを参照してはいけません。 全てのリファレンスを、メインSWF(ここではcontainer)に与えられたムービークリップのインスタンス名によって_rootに変更します。

単一のSWFファイルを使用する

この手法は、前述の手法と似ていますが、外部のSWFファイルをロードする代わりに、内部のムービークリップをロードします。

  • 新たにFlash Liteアプリケーションを作成します(myApp.swf)。
  • ドキュメントの幅と高さを、ドキュメントプロパティタブを使用し、ドキュメントの幅と高さを指定できる最大値(ここでは320x320)に変更します。
  • 最初のキーフレームに、下記コードを追加します。
stop();
 
fscommand2("FullScreen", true);
 
/* Set scaleMode to "noScale" setting: the SWF will not be scaled
when the size of the screen device changes*/
Stage.scaleMode = "noScale";
 
//Set the current alignment of the Flash movie to "Top Left"
Stage.align = "TL";
 
//Detect the screen size and load the correct movieclip
if (Stage.width == 240) {
	_root.attachMovie("portrait_mc","portrait",10);
 
} else {
	_root.attachMovie("landscape_mc","landscape",10);
 
}
  • ムービークリップを作成します。
    • メニューより、挿入 -> 新規シンボル... -> ムービークリップを選択し名前を指定
    • ActionScriptに書き出しにチェックし、識別子を portrait_mcに設定します。
Click to enlarge
Click to enlarge
    • このムービークリップ中で、backgroundという名前のレイヤーを作成します。このレイヤーは、常にバックグラウンドにある必要があります。
    • backgroundレイヤーの最初のキーフレームにて、次のパラメータ設定で矩形を描画します。Image:shape_prop.jpg
      その塗りつぶし色はドキュメントの背景色と同じにする必要があります(開発中は、その境界線を確認するために別の色で塗りつぶすことができます)。
    • ムービークリップの縦長(portlait)方向に合うよう、アプリケーションを作成します。背景矩形の近くには、一切描画してはいけません
  • この一連の操作全てを、"landscape_mc"ムービークリップと320x240サイズ矩形で繰り返します。
  • myApp.swfを起動します。アプリケーションを現在の画面方向に合わせて表示します。

ダウンロード

例題のソースコードは、下記サイトからダウンロードできます。
このFlash Lite 2.xアプリケーションは、最新のNokia端末5機種についての情報を取得し、表示します。 また、RSSフィードとFlash LiteのXML操作メソッドを使用しています。 縦長(Portlait)と横長(Landscape)モードをサポートする最新のNokia端末
Image:Nokia_Latest_Devices.jpg

 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX