【问题标题】:AS3/FP9 - Resize a SpriteAS3/FP9 - 调整 Sprite 的大小
【发布时间】:2010-12-07 21:33:03
【问题描述】:

我已将尺寸为 3264x2448 的 JPG 加载到 Sprite 中。如何按比例调整它的大小以允许将 Sprite 绘制到 BitmapData 对象中(在 CS3/Flash Player 9 中限制为 2880 高度或宽度)。我的目标是使用 Soulwire [DisplayUtils][1] 创建缩略图。这是与其他更小的 Sprite 一起正常工作的代码:

var bmpd:BitmapData = new BitmapData(jpgSprite.width, jpgSprite.height, true, 0x00FFFFFF);
bmpd.draw( jpgSprite );

var thumb:Bitmap = DisplayUtils.createThumb( bmpd, 100, 100, Alignment.MIDDLE, true);
addChild( thumb );

感谢您的建议。

【问题讨论】:

    标签: flash actionscript-3 sprite bitmapdata


    【解决方案1】:

    我想使用矩阵来缩小它可能会奏效。不过我还没有测试过代码。

    var w:Number = 3264;
    var h:Number = 2448;
    var scale:Number = w / 2880;
    var bmpd:BitmapData = new BitmapData(2880, h / scale, true, 0x00FFFFFF);
    var matrix:Matrix = new Matrix();
    matrix.createBox(scale, scale)
    bmpd.draw(jpgSprite, matrix);
    

    【讨论】:

    • 工作就像一个魅力,谢谢!这是我的通用版本: var w:Number = jpgSprite.width; var h:Number = jpgSprite.height;变量比例:数字= 1;如果(h>2880 || w>2880){比例=(h>w)? h / 2880 : w / 2880; } var bmpd:BitmapData = new BitmapData(w / scale, h / scale, true, 0x00FFFFFF); var xform:Matrix = new Matrix(); xform.createBox(规模,规模); bmpd.draw( jpgSprite, xform );
    猜你喜欢
    • 2020-04-27
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多