关于在AS3项目中嵌入资产(图像)

Vla*_*lad 0 embed sdk assets actionscript-3 flex4

我正在使用flex sdk 4.5.1和flash develop来编译我的AS3项目.我有小图像,大约12KB,使用Loader类加载它们是愚蠢的,所以嵌入是更好的解决方案.

然而,当我的Main类顶部的这一行未被发现时,我得到空白的swf

[Embed(source = "../assets/gui/play1.png", mimeType = "image/png")]
private var PlayUpImg:Class;
Run Code Online (Sandbox Code Playgroud)

(当我评论出来时,编译的swf是好的)

可能是什么错误.为什么我得到空白的SWF?

我正在使用FlashDevelop中的纯AS3项目

Tau*_*ayi 6

您可以尝试使用"application/octet-stream"mimetype将png图像嵌入为任意二进制数据.然后,您将使用Loader对象的loadBytes()方法来加载png图像的二进制数据.以下是此示例:

package
{
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.Event;

    [SWF(width="256", height="256", backgroundColor="#FF0000")]
    public class Main extends Sprite 
    {
        [Embed(source = "assets/ie9.png", mimeType = "application/octet-stream")]
        private var IE9:Class;

        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);

        }// end function

        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);

            var loader:Loader = new Loader();
            loader.loadBytes(new IE9());
            addChild(loader);

        }// end function

    }// end class

}// end package
Run Code Online (Sandbox Code Playgroud)

[UPDATE]

我知道这个答案已被接受,但这里还有额外的额外奖励.

在此输入图像描述

在此输入图像描述