基于ActionScript3嵌入的位图(Embed bitmap in ActionScript3

2019-06-25 09:04发布

如何能够将在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。

编辑:

所以我想通了,嵌入的数据是空的,但我想不出为什么。 我做了什么错在嵌入?

Answer 1:

看起来你是嵌入正确,如果你没有得到一个错误代码转换。 您应该能够直接从位图得到的位图数据:

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


Answer 2:

你并不需要实例作为BitmapData和借鉴 - 你可以简单地说:

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

var bitmap:Bitmap = new AssetClass();


Answer 3:

在一些编辑器(至少我的版本的IntelliJ)的嵌入标签是区分大小写。 我给你使用[内嵌]当有完全相同的错误,但它的工作伟大的,当我切换到[嵌入]



文章来源: Embed bitmap in ActionScript3