我在外部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中添加一个比例矩阵找到了解决方法。但是我仍然不知道为什么在没有它的情况下将缩放转换为裁剪。
答案 0 :(得分:1)
我想我在上一个项目中记得类似的问题,试试这个解决方案:
bitmapdata.draw(Tiger, Tiger.transform.matrix);