1

私が必要としているのは、ユーザーの画面の比率に関係なく、画面のすべての領域を利用することです。デフォルトでは、Airアプリは内側から外側に比例してスケーリングします。Androidで画面のサイズと比率をそれほど変えていなければ、これは素晴らしいことです。

Angry Birdsは、私が流動的なレイアウトと呼んでいるものの良い例です。これは、常に3つのレイヤー(フロント、ゲーム、バックグラウンドレイヤー)をそれに応じて拡大縮小/ズームします。

私のアプリは主にインターフェースベースのゲームであり、ユーザーはいくつかの情報を見て、いくつかのボタンをクリックする必要があります。スケールは主にユーザー画面の幅に基づいており、必要に応じてスクロールを使用できると思います。問題はそれをどのように行うかです。

4

1 に答える 1

4

流動的/流動的/レスポンシブなレイアウトは、何らかのレイアウト マネージャーを意味する可能性があります。

この機能は Flex に組み込まれています。

フラッシュごと、より具体的には、要件ごとに指摘したことは、基本的なスケーリングとポジショニングがあなたが望むものであるように思えます。

レイヤー

お気づきのように、レイヤーが異なれば、スケーリングごとに異なる要件があります。

  • バックグラウンド
  • ゲームプレイ
  • インターフェイス/コントロール

背景とゲーム プレイは 1 つのレイヤーである場合があります。ただし、読みやすさと相互作用のために、フォアグラウンド ユーザー コントロールに異なる制約が必要な場合があります。

ステージのセットアップ

スケーリングを制御する場合は、次のように設定する必要があります。

import flash.display.StageAlign;
import flash.display.StageScaleMode;

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;

これは、縦向きと横向きの間でモバイル デバイスを交換する際の向きの変更にも役立ちます。

ブラウザはサイズ変更できます。そのため、サイズ変更イベントをリッスンする必要があります。

stage.addEventListener(Event.RESIZE, resizeHandler);
stage.dispatchEvent(new Event(Event.RESIZE));

function resizeHandler(event:Event=null):void
{
    /* scale code ... */
}

ポジショニング

左上は 0x0 座標であるため、常に上下の位置合わせは簡単です。右と下ではDisplayObject、ステージから幅を差し引く必要があります。

右揃えの例:

mc.x = stage.stageWidth - mc.width;

下揃えの例:

mc.y = stage.stageHeight - mc.height;

ステージの中央に何かを置く:

mc.x = (stage.stageWidth * 0.5) - (mc.width * 0.5);
mc.y = (stage.stageHeight * 0.5) - (mc.height * 0.5);

スケーリング

ステージ上の空白/空の領域を回避するための制約を決定する必要があります。

これは、比率変数を使用して実装できます。

var ratio:Number = 1.0;

比例スケーリング:

ratio = stage.stageWidth / gameMovieClip.width;
gameMovieClip.scaleX = ratio;
gameMovieClip.scaleY = ratio;

ステージに合わせて表示オブジェクトを引き伸ばす:

gameMovieClip.scaleX = stage.stageWidth / gameMovieClip.width;
gameMovieClip.scaleY = stage.stageHeight / gameMovieClip.height;

ベスト フィット アルゴリズムでは、表示オブジェクトの最小制約を境界内に合わせる必要があります。Greensock auto fit areaなど、これを支援できるライブラリがあります。

自動フィット領域

仮想カメラ

仮想カメラは、Flash で人気があります。コンセプトは、ビューを設計してから、カメラをパンおよびズームして特定の領域を表示することです。

ノンコーダー向けの O'Reilly ActionScript

Vカム

仮想カメラ FLA の例:

仮想カメラの例:

たとえば、Google の「Flash 仮想カメラ」または「Flash v-cam」です。

于 2012-07-08T01:19:35.783 に答える