2009-10-19 110 views
0

我已經將尺寸爲3264x2448的JPG加載到雪碧中。我怎樣才能調整它的大小,以允許我將Sprite繪製成一個BitmapData對象(在CS3/Flash Player 9中限制爲2880的高度或寬度)。我的目標是使用Soulwire [DisplayUtils] [1]創建縮略圖。下面是與其他較小,精靈正常工作代碼:AS3/FP9 - 調整雪碧的大小

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); 

感謝您的建議。

回答

2

我想用一個矩陣來縮小它可能會訣竅。儘管我沒有測試代碼。

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); 
+0

工作就像一個魅力,謝謝!這是我的通用版本: \t var w:Number = jpgSprite.width; \t var h:Number = jpgSprite.height; \t var scale:Number = 1; (h> 2880 || w> 2880){ \t \t \t scale =(h> w)? h/2880:w/2880; \t} \t var bmpd:BitmapData = new BitmapData(w/scale,h/scale,true,0x00FFFFFF); \t var xform:Matrix = new Matrix(); \t xform.createBox(scale,scale); \t bmpd.draw(jpgSprite,xform); – 2009-10-19 13:05:14