2

Actionscript 3 にビットマップを埋め込んで BitmapData を取得するにはどうすればよいですか?

public class MyGame extends Sprite {
    [EMBED(source="Assets/helicopter1.png")] private static var BMClass:Class;
    public function MyGame() {
        var BM:Bitmap = new BMClass();
        var BMData:BitmapData = new BitmapData(BM.width, BM.height);
        BMData.draw(BM)
    }
}

私はすべてを試しました。埋め込みクラス ( ) をインスタンス化しようとすると、次のnew BMClass();エラーが発生します。

TypeError: Error #1007: Instantiation attempted on a non-constructor..

私が使用する場合

[EMBED(source="Assets/helicopter1.png")] private static var BMClass:BitmapData;

または似たようなもの BitmapData が null です。

編集:

そのため、埋め込まれたデータがnullであることがわかりましたが、その理由はわかりません。埋め込みで何が間違っていましたか?

4

3 に答える 3

17

トランスコーディングでエラーが発生しない場合は、正しく埋め込まれているようです。ビットマップから直接bitmapDataを取得できるはずです。

[Embed(source="picture.jpg")]
private var Picture:Class;

// create a bitmap of the embedded
var pic:Bitmap = new Picture();

// add to display list
addChild(pic);

// if you need to get the bitmapData for something else
var bitmapData:BitmapData = pic.bitmapData;
于 2012-05-26T18:40:15.627 に答える
3

BitmapDataとしてインスタンス化して描画する必要はありません。簡単に次のことができます。

[Embed(source="Assets/helicopter1.png")]
private var AssetClass:Class;

var bitmap:Bitmap = new AssetClass();
于 2012-05-26T18:39:00.747 に答える