【问题标题】:Starling: Scaling vector sprite for image crops instead of scalesStarling:为图像裁剪而不是比例缩放矢量精灵
【发布时间】:2013-05-19 17:40:07
【问题描述】:

我在外部 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 添加比例矩阵找到了解决方法。但是我还是不知道为什么没有它缩放会变成裁剪。

【问题讨论】:

  • 你的解决方法是什么。也许你应该用它来编辑你的代码?

标签: actionscript-3 air scale starling-framework


【解决方案1】:

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

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

【讨论】:

  • 啊,太完美了!现在你指出来有点明显。 :) 谢谢!
  • @TrickyWidget 很高兴它有帮助!我记得我在 Colin Moock 的“Essential ActionScript 3.0”中找到了答案
猜你喜欢
  • 1970-01-01
  • 2012-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-29
  • 2017-06-18
  • 1970-01-01
相关资源
最近更新 更多