如何使位图生成SWF文件

时间:2011-06-17 04:24:21

标签: actionscript-3 flash mxmlc jsfl

位图资源,它通常使位图生成SWF文件,并使用Loader类加载到应用程序中。 我从谷歌搜索一些答案,找到两种生成SWF文件的方法,一种。使用mxmlc工具。另外,使用jsfl。 我知道我们可以将位图或swf文件嵌入到As代码中。并使用像这样的mxmlc命令: as文件是Vip.as,代码:

package 
{
    public class Vip
    {
        [Embed(source="vip.gif"]
        public static var vip:Class;
    }
}

现在,我使用mxmlc Vip.as ... 它有Vip.swf文件,将Vip.swf文件上传到Server。 然后,在flashBuilder中,创建一个新的ActionScript项目,应用程序代码为:

public class LoadUI extends Sprite
{
    public function LoadUI()
    {
        init(); 
    }

    private function init():void {
        var loader:Loader = new Loader();
        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
        var context:LoaderContext = new LoaderContext();
        context.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);

        loader.load( new URLRequest('http://localhost/swfResouce/Vip.swf'));


    }

    private function completeHandler(e:Event):void {
        var loaderInfo:LoaderInfo = e.currentTarget as LoaderInfo;

    }

并调试应用程序,错误是:

VerifyError: Error #1014: Class Not Found  mx.core::BitmapAsset.

我不知道如何使用mxmlc生成swf文件。调试代码时没有错误。

另一种方法是使用JSFL在flash cs5中生成SWF,但我不知道如何使用它。啊,非常痛苦。

3 个答案:

答案 0 :(得分:0)

我猜您要显示嵌入的图像(gif)。

以下是它的完成方式:

package
{
    import flash.display.Bitmap;
    import flash.display.Sprite;

    public class Main extends Sprite
    {

        [Embed(source="vip.gif")]
        private var embeddedVip : Class;


        public function Main()
        {
            var vip : Bitmap = new embeddedVip();
            addChild(vip);
        }
    }
}

答案 1 :(得分:0)

避免

  

VerifyError:错误#1014

尝试使用静态链接进行编译:

mxmlc -static-link-runtime-shared-libraries=true -debug=true Main.swf --Main.as

[编辑]

mxmlc -static-link-runtime-shared-libraries=true -debug=true Main.as

答案 2 :(得分:0)

为什么不直接加载图像(来自Loader)并将它们包装在Sprite中? GIF并不完全需要时间表。 :)