2010-12-16 16 views
0

私はクラスを持っています。thatsは、2 IBitmapDrawableをマージするbitmapDataでクラスを作成します。 一方は24 * 20で、他方は16 * 16です。 widthとheightが24 * 20 のbitmapDataオブジェクトの最初の小さいものを描画したいが、大きな境界の中央に描画したい。flex bitmapData draw - 描画する場所を設定する方法

誰でも知っていますか? おかげで...のBitmapData.draw、使用翻訳マトリックス中matrixパラメータで

if (baseIcon) { 
    var result:BitmapData = new BitmapData(baseIconWidth,baseIconHeigt,true, 0x00FFFFFF); 
    result.draw(baseIcon,new Matrix(1, 0, 0, 1, 0, 0)); 
    if (indicatorIcon) { 
     result.draw(indicatorIcon,new Matrix(1, 0, 0, 1, 0, 0)); 
    } 
    bitmapData = result; 
    baseIcon = null;    
} 

答えて

1

これを試してみてください:

if (baseIcon) { 
    var result:BitmapData = new BitmapData(baseIconWidth,baseIconHeigt,true, 0x00FFFFFF); 
    var m:Matrix = new Matrix(); 
    m.translate(baseIconWidth/2 - baseIcon.width/2,baseIconHeight/2 - baseIcon.height/2); 
    result.draw(baseIcon,m); 
    if (indicatorIcon) { 
     result.draw(indicatorIcon,new Matrix(1, 0, 0, 1, 0, 0)); 
    } 
    bitmapData = result; 
    baseIcon = null;    
}