モバイルデバイスでの ActionScript 3.0 の例の実行

ActionScript 3.0 のコード例は、Flash Player 10.1 をサポートしているモバイルデバイス上で実行できます。ただし、一般にコード例を実行する目的は、特定のクラスやメソッドの動作を確認することにあります。その場合には、デスクトップコンピューターなどのモバイル以外のデバイス上で例を実行してください。デスクトップコンピューターでは、trace ステートメントや Flash Professional または Flash Builder のデバッグツールを使用してコード例について理解を深めることができます。

モバイルデバイス上で例を実行する場合は、デバイスまたは Web サーバーにファイルをコピーします。ファイルをデバイスにコピーしてブラウザーで例を実行するには、次の手順に従います。

  1. Flash Professional での ActionScript 3.0 の例の実行または Flash Builder での ActionScript 3.0 の例の実行の手順に従って、SWF ファイルを作成します。Flash Professional では、制御/ムービープレビューを選択するときに SWF ファイルが作成されます。Flash Builder では、Flash Builder プロジェクトを実行、デバッグまたはビルドするときに SWF ファイルが作成されます。

  2. SWF ファイルをモバイルデバイス上のディレクトリにコピーします。ファイルをコピーするには、デバイスに付属のソフトウェアを使用します。

  3. モバイルデバイス上で、ブラウザーのアドレスバーに SWF ファイルの file:// URL を入力します。例えば、file:://applications/myExample.swf と入力します。

ファイルを Web サーバーにコピーしてデバイスのブラウザーで例を実行するには、次の手順に従います。

  1. SWF ファイルおよび HTML ファイルを作成します。まず、Flash Professional での ActionScript 3.0 の例の実行または Flash Builder での ActionScript 3.0 の例の実行の手順に従います。Flash Professional で、制御/ムービープレビューを選択すると、SWF ファイルのみが作成されます。両方のファイルを作成するには、まず、パブリッシュ設定ダイアログの「フォーマット」タブで、「Flash」と「HTML」の両方を選択します。次に、ファイル/パブリッシュを選択すると、HTML ファイルと SWF ファイルの両方が作成されます。Flash Builder では、Flash Builder プロジェクトを実行、デバッグまたはビルドするときに SWF ファイルと HTML ファイルの両方が作成されます。

  2. SWF ファイルと HTML ファイルを Web サーバーのディレクトリにコピーします。

  3. モバイルデバイス上で、ブラウザーのアドレスバーに、HTML ファイルの HTTP アドレスを入力します。例えば、http://www.myWebServer/examples/myExample.html と入力します。

モバイルデバイス上で例を実行する前に、次の各事項考慮について検討してください。

ステージサイズ

モバイルデバイス上で例を実行するときに使用するステージのサイズは、モバイル以外のデバイスで使用する場合よりも、かなり小さくなります。多くの例では、ステージのサイズが指定されていません。SWF の作成時に、ご使用のデバイスに合わせてステージのサイズを指定してください。例えば、176 x 208 ピクセルと指定します。

『ActionScript 3.0 開発ガイド』の実例は、様々な ActionScript 3.0 の概念とクラスについて説明することを目的としています。そこで使用されるユーザーインターフェイスは、デスクトップまたはラップトップコンピューター上で正しく表示および動作できるように設計されています。例はモバイルデバイス上でも動作しますが、ステージのサイズやユーザーインターフェイスの設計は、小さな画面には適していません。アドビ システムズ社では、コンピューター上で実例を実行して ActionScript について学習し、付随するコードスニペットをモバイルアプリケーションで使用することをお勧めします。

テキストフィールドによる trace ステートメントの代替

モバイルデバイス上で例を実行する場合は、例の trace ステートメントからの出力を表示できません。出力を表示するには、TextField クラスのインスタンスを作成します。次に、trace ステートメントからのテキスト出力をテキストフィールドの text プロパティに追加します。

テキストフィールドを設定しトレースの代替機能として使用するには、次の関数を使用します。

function createTracingTextField(x:Number, y:Number, 
                                width:Number, height:Number):TextField { 
           
    var tracingTF:TextField = new TextField(); 
    tracingTF.x = x; 
    tracingTF.y = y; 
    tracingTF.width = width; 
    tracingTF.height = height; 
     
    // A border lets you more easily see the area the text field covers. 
    tracingTF.border = true; 
    // Left justifying means that the right side of the text field is automatically 
    // resized if a line of text is wider than the width of the text field. 
    // The bottom is also automatically resized if the number of lines of text 
    // exceed the length of the text field. 
    tracingTF.autoSize = TextFieldAutoSize.LEFT; 
     
    // Use a text size that works well on the device. 
    var myFormat:TextFormat = new TextFormat(); 
    myFormat.size = 18; 
    tracingTF.defaultTextFormat = myFormat; 
     
    addChild(tracingTF); 
    return tracingTF; 
}

例えば、この関数をドキュメントクラスに private 関数として追加します。次に、ドキュメントクラスの他のメソッドで次のようなコードを使用してデータをトレースします。

var traceField:TextField = createTracingTextField(10, 10, 150, 150); 
// Use the newline character "\n" to force the text to the next line. 
traceField.appendText("data to trace\n"); 
traceField.appendText("more data to trace\n"); 
// Use the following line to clear the text field. 
traceField.appendText("");

appendText() メソッドがパラメーターとして受け付ける値は 1 つだけです。その値はストリング(String インスタンスまたはストリングリテラル)にする必要があります。ストリング以外の変数の値を出力するには、まず値を String に変換する必要があります。このための最も簡単な方法は、オブジェクトの toString() メソッドを呼び出すことです。

var albumYear:int = 1999; 
traceField.appendText("albumYear = "); 
traceField.appendText(albumYear.toString());

テキストサイズ

多くの例では、概念を説明するのにテキストフィールドが使用されています。テキストフィールド内のテキストサイズを調整すると、モバイルデバイス上の表示が読みやすくなる場合があります。例えば、例で myTextField という名前のテキストフィールドインスタンスが使用されている場合は、そのテキストのサイズを次のコードで変更します。

// Use a text size that works well on the device. 
var myFormat:TextFormat = new TextFormat(); 
myFormat.size = 18; 
myTextField.defaultTextFormat = myFormat

ユーザー入力のキャプチャ

モバイル用オペレーティングシステムとブラウザーでは、SWF コンテンツでは受信されないいくつかのユーザー入力イベントをキャプチャします。イベント固有の動作はオペレーティングシステムとブラウザーによって異なりますが、モバイルデバイス上で例を実行したときに予期しない動作を示す可能性があります。詳しくは、KeyboardEvent の優先度を参照してください。

また、多くの例のユーザーインターフェイスは、デスクトップまたはラップトップコンピューターを対象として設計されています。例えば、『ActionScript 3.0 開発ガイド』で使用されている実例の多くは、デスクトップでの表示に適しています。したがって、モバイルデバイスの画面では、ステージ全体を表示できない場合があります。ブラウザーのコンテンツ全体をパンできるかどうかは、使用しているブラウザーによって異なります。さらに、例はスクロールまたはパンのイベントをキャッチして処理するように設計されていません。したがって、例で使用されているユーザーインターフェイスの一部は、小さな画面で実行するのには適していません。アドビ システムズ社では、コンピューター上で例を実行して ActionScript について学習し、付随するコードスニペットをモバイルアプリケーションで使用することをお勧めします。

詳しくは、表示オブジェクトのパンとスクロールを参照してください。

フォーカスの処理

一部の例では、フィールドにフォーカスを設定する必要があります。フィールドにフォーカスを設定することにより、テキスト入力やボタン選択などを実行できます。フィールドにフォーカスを設定するには、指またはペンなどのモバイルデバイスのポインターデバイスを使用します。または、モバイルデバイスのナビゲーションキーを使用してフィールドにフォーカスを設定します。フォーカスの設定されているボタンを選択するには、モバイルデバイスの選択キーを使用します。コンピューターで Enter キーを使用するのと同じ要領です。一部のデバイスでは、ボタンを 2 回タップすると選択できます。

フォーカスについて詳しくは、フォーカスの管理を参照してください。

マウスイベントの処理

多くの例ではマウスイベントを監視します。コンピューターでは、例えば、ユーザーが表示オブジェクト上にマウスを移動したり、表示オブジェクト上でマウスボタンをクリックしたりしたときに、これらのマウスイベントが発生します。モバイルデバイスでは、指またはペンなどのポインターデバイスを使用したときに発生するイベントはタッチイベントと呼ばれます。Flash Player 10.1 では、タッチイベントをマウスイベントにマップします。このマッピングによって、Flash Player 10.1 より前に開発された SWF コンテンツでも引き続き動作することが保証されます。したがって、ポインターデバイスを使用して表示オブジェクトを選択したり、ドラッグしたりする場合でも、例は動作します。

パフォーマンス

モバイルデバイスの処理能力はデスクトップデバイスに劣ります。CPU に高い負荷のかかる例をモバイルデバイスで実行すると、パフォーマンスが低下します。例えば、描画 API の例:Algorithmic Visual Generatorの例では、フレームに入るたびに膨大な量の計算と描画が実行されます。この例をコンピューターで実行すると、様々な描画 API が例示されます。しかし、一部のモバイルデバイスはパフォーマンスに制限があるので、この例を実行するのに適していません。

モバイルデバイスでのパフォーマンスについて詳しくは、「Flash Platform のパフォーマンスの最適化」を参照してください。

ベストプラクティス

例では、モバイルデバイス向けアプリケーションを開発する上でのベストプラクティスを考慮していません。モバイルデバイスにおけるメモリおよび処理能力の制限は、特別な考慮を必要とします。同様に、小さい画面用のユーザーインターフェイスもデスクトップ表示とは異なる考慮が必要です。モバイルデバイス用のアプリケーション開発について詳しくは、Flash Platform のパフォーマンスの最適化」を参照してください。