0

Flash ビルダーで actionscript 3.0 を使用してアプリを構築しています。これはこの質問に対するフォローアップの質問です。うまくいきますが、写真を撮ると画像が左に回転して出てきます。ユーザーが電話をどちらの方向に持っているかを確認するにはどうすればよいですか? 次に、画像を対応する場所に回転させるためにどのコードを使用しますか?

ありがとうございます!

編集: このコードを使用して画像を回転させていますが、画像ファイルではなく表示されている画像のみを回転させるようです。アイデアはありますか?

var mat:Matrix = new Matrix();
mat.translate(-W/2, -H/2);
mat.rotate(Math.PI/2);
mat.translate(+W/2, +H/2);
mat.concat(myObj.transform.matrix);
myObj.transform.matrix = mat;

〜マイ

4

3 に答える 3

1

Stage.deviceOrientationまたはStage.orientation * を使用して、電話がどちらに向いているかを判断できます。

*これがiOSで動作するかどうかはわかりません

回転させたいのは BitmapData の結果そのものですか (つまり、回転した画像で新しい BitmapData を作成します)、それとも単に表示リストでビットマップを回転させますか?

編集:

わかりました、BitmapData オブジェクトを回転させるコードを次に示します。

function rotateBitmapData(angle:int, source:BitmapData):BitmapData
{
    var newWidth:int = source.rect.width;
    var newHeight:int = source.rect.height;
    if (angle==90 || angle==270)
    {
        newWidth = source.rect.height;
        newHeight = source.rect.width;
    }
    var newBmd:BitmapData = new BitmapData(newWidth, newHeight, source.transparent);
    var tx:Number = 0;
    var ty:Number = 0;
    if (angle==90 || angle==180)
    {
        tx = newWidth;
}
    if (angle==180 || angle==270)
    {
        ty = newHeight;
    }
    var matrix:Matrix = new Matrix();
    matrix.createBox(1, 1, Math.PI*angle/180, tx, ty);
    newBmd.draw(source, matrix);
    return newBmd;
}

angle は 0、90、180、または 270 である必要があります。指定された角度で回転された新しい BitmapData オブジェクトを返します。

于 2013-02-20T04:09:20.390 に答える
0

StageOrientationEvent.ORIENTATION_CHANGINGEventを使用できます:

stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING, OrientationChangeHandler);

private function OrientationChangeHandler(e:StageOrientationEvent):void
        {
            switch (e.afterOrientation)
            {


                case StageOrientation.DEFAULT :

                break;
            case StageOrientation.ROTATED_RIGHT :

                break;
            case StageOrientation.ROTATED_LEFT :

                break;
            case StageOrientation.UPSIDE_DOWN :

                break;
            }
        }

これはあなたを助けることができます。

于 2013-02-20T05:00:31.060 に答える