0

我使用 flash builder 4.5 和 AS3 从实时 JSON 数据源动态加载图像。它的加载和工作正常并响应我的滑动手势(左滑动返回,右滑动前进到下一个图像)......

我想添加一些动作脚本来检测图片在成功加载后的方向,然后如果它是垂直方向的照片,将舞台旋转 90 度(并设置某种类型的标志以记住它处于“旋转状态”。

我怎样才能做到这一点?

if (myPic && myPic.width > myPic.height)
 {
     // this picture is horizontal, so leave stage in normal landscape aspect ratio
 } else {
     // something here to take the stage and rotate it 90 degrees
 }
4

1 回答 1

2

您可以使用宽高比来确定图像的形状是纵向还是横向。我不确定您是否要旋转舞台,而是要旋转图像本身。

这是我写的一个可以提供帮助的课程:

public class PhotoHolder extends Sprite
{

    public static const Landscape:int = 0;
    public static const Portrait:int = 1;


    private var _bitmap:Bitmap;
    private var _orientation:int = 0;


    public function PhotoHolder(bitmap:Bitmap)
    {
        _bitmap = bitmap;
        _bitmap.x = -(_bitmap.width / 2);
        _bitmap.y = -(_bitmap.height / 2);

        if(bitmap.width >= bitmap.height) _orientation = Landscape;
        else
        {
            rotation = 90;
            _orientation = Portrait;
        }

        addChild(_bitmap);
    }


    public function get orientation():int
    {
        return _orientation;
    }

}

这将为您管理旋转,您将能够通过 确定图像最初是 aLandscape还是Portrait方向.orientation

于 2013-03-04T02:33:07.347 回答