Actionscript 3 在flash中嵌入大约90个图像

Actionscript 3 在flash中嵌入大约90个图像,actionscript-3,flash,flash-cs5,Actionscript 3,Flash,Flash Cs5,我有大约90张图片需要嵌入到动作脚本(第3版)中。我能弄明白的唯一方法是为每张图像键入以下代码90次 [Embed(source="images/door0091.bmp")] private var Door1:Class; var door1:Bitmap = new Door1(); 写这么多次真的很痛苦。我想知道是否有任何方法可以通过编程实现 我不能使用loader方法,因为图像需要与swf文件一起显示。我希望swf在编译后是独立的。请帮忙 提前感谢。如果您想使用zip

我有大约90张图片需要嵌入到动作脚本(第3版)中。我能弄明白的唯一方法是为每张图像键入以下代码90次

[Embed(source="images/door0091.bmp")]
    private var Door1:Class;
    var door1:Bitmap = new Door1();
写这么多次真的很痛苦。我想知道是否有任何方法可以通过编程实现

我不能使用loader方法,因为图像需要与swf文件一起显示。我希望swf在编译后是独立的。请帮忙


提前感谢。

如果您想使用zip文件,有一种方法。您可以将包含所有图像的整个zip文件嵌入到应用程序中。然后,在运行时打开zip文件以检索所需的图像。您可以编写自己的zip util,或者,如下图所示,只需使用nochump提供的免费zip util即可:

调用zip.getInput()函数时,将提取单个zip条目的内容,因此只有在准备提取特定文件时才使用该调用

下面是一个完整的演示应用程序:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
    <mx:Script>
        <![CDATA[
            import nochump.util.zip.ZipEntry;
            import nochump.util.zip.ZipFile;

            [Embed(source="images.zip",mimeType="application/octet-stream")]
            private var imagesZip:Class;

            protected function init():void
            {
                var theImages:Object = new imagesZip();

                var zip:ZipFile = new ZipFile(theImages as IDataInput);
                for each(var entry:ZipEntry in zip.entries)
                {
                    var fileName:String = entry.name.toLowerCase();
                    if(fileName == "image2.jpg")
                    {
                        var loader:Loader = new Loader();
                        this.rawChildren.addChild(loader);
                        loader.loadBytes(zip.getInput(entry));
                    }
                }
            }
        ]]>
    </mx:Script>
</mx:Application>


我希望这对你有帮助

如果您在Windows上,可以使用批处理脚本生成包含嵌入代码的文件(或生成部分代码并手动将其粘贴到另一个文件中)

批处理很难看,但对于简单的任务,它几乎是可用的。将以下代码复制到一个新文件中,并随意命名(使用.bat作为扩展名)。将此脚本放入“图像”文件夹并运行(双击)。它应该为每个以.jpg结尾的图像创建一个文件
images.as
,其中包含生成的actionscript代码(您可以将脚本更改为使用其他扩展名)


这是非常基本的,如果文件名包含诸如空格之类的“奇怪”字符,则无法正常工作。但是,我认为,如果不是这样,它可以完成繁重的工作。

嵌入是在编译时完成的。您不能通过编程来完成它


您唯一能做的就是使用路径并在数组中生成它。或者,如果您对embed感到满意,我同意Juan Pablo Clifano技巧,或者通常使用代码生成器,如code Smith等。

嗨,PIM。。。非常感谢你的回复。我将于周一在我的办公室试用您的上述演示应用程序。。。如果这方面还有任何问题,我希望你能帮助我解决这个问题。。。谢谢你的帮助!!!嗨,胡安。。谢谢你的回复。这工作很好,而且它节省了我重复编写相同代码的很多时间。。谢谢@sanmax007。没问题,我很高兴这很有帮助。
@echo off
set out_file=images.as
echo     // script generated file > %out_file%
for /f %%a IN ('dir /b *.jpg') do (
    echo     [Embed^(source="images/%%a"^)] >> %out_file%
    echo     private var %%~na_class:Class; >> %out_file%
    echo     private var %%~na:Bitmap = new %%~na_class^(^); >> %out_file%
)