我在外部SWF中有矢量精灵。我可以把它们画在星城的图像上。但是当我尝试预先缩放精灵时,结果图像被裁剪而不是缩放。
这在斯特林与普通精灵之外工作得很好,但我是斯特林的新手,所以我肯定我错过了一些基本的东西。任何帮助都会很感激。谢谢!
FlashDevelop + AIR + Starling
文件main
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();
}
}
}
无异于常人
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。但是我还是不知道为什么缩放会被转换成裁剪
我想我记得类似的问题在我的最后一个项目,尝试这个解决方案:
bitmapdata.draw(Tiger, Tiger.transform.matrix);