Starling:缩放矢量精灵用于图像裁剪而不是缩放

时间:2013-05-19 17:40:08

标签: actionscript-3 air scale starling-framework

我在外部SWF中有矢量精灵。我可以把它们画到Starling图像上就好了。但是当我尝试手动缩放精灵时,生成的图像已被裁剪而不是缩放。

这可以在明星精灵的椋鸟之外正常工作,但我是Starling的新手,所以我确定我错过了一些基本的东西。任何帮助,将不胜感激。谢谢!

FlashDevelop + AIR + Starling

Main.as

package 
{
    import flash.display.Sprite;
    import starling.core.Starling;

    public class Main extends Sprite 
    {
        private var starling:Starling;

        public function Main():void 
        {
            starling = new Starling(Game, stage);
            starling.start();
        }
    }
}

Game.as

package  
{
    import flash.display.BitmapData;
    import starling.display.Image;
    import starling.display.Sprite;
    import starling.textures.Texture;

    public class Game extends Sprite
    {
        [Embed(source = "../assets/Sprites.swf", symbol = "Sprites_Tiger")]
        private var Sprites_Tiger:Class;
        public var Tiger:flash.display.Sprite = new Sprites_Tiger();

        public function Game() 
        {
            Tiger.width = 256;
            Tiger.height = 256;

            var bitmapdata:BitmapData = new BitmapData(Tiger.width, Tiger.height);
            bitmapdata.draw(Tiger);

            var texture:Texture = Texture.fromBitmapData(bitmapdata);
            var image:Image = new Image(texture);

            addChild(image);
        }
    }
}

编辑:我通过在bitmapdata.draw中添加一个比例矩阵找到了解决方法。但是我仍然不知道为什么在没有它的情况下将缩放转换为裁剪。

1 个答案:

答案 0 :(得分:1)

我想我在上一个项目中记得类似的问题,试试这个解决方案:

  bitmapdata.draw(Tiger, Tiger.transform.matrix);