Actionscript—将AS2资产合并到单个SWF中

Actionscript—将AS2资产合并到单个SWF中,actionscript,flash,actionscript-2,Actionscript,Flash,Actionscript 2,我有一个flash项目,我正试图将其导出为单个SWF。有一个主SWF文件可以加载大约6个其他SWF,主SWF和子SWF都引用其他外部资产(图像、声音等)。我希望将所有内容打包为一个.swf文件,这样就不必将其他资产与.swf一起携带 所有的编码都是在时间线中完成的,但是这些资产还没有导入到Flash创作环境中,我现在没有时间这么做(到处都有太多对它们的引用)。我希望有一个我错过的选项,允许这种打包出口,但我还没有找到类似的东西 我没有访问Flex或mxmlc的权限(因为as是基于时间线的,所以它

我有一个flash项目,我正试图将其导出为单个SWF。有一个主SWF文件可以加载大约6个其他SWF,主SWF和子SWF都引用其他外部资产(图像、声音等)。我希望将所有内容打包为一个.swf文件,这样就不必将其他资产与.swf一起携带

所有的编码都是在时间线中完成的,但是这些资产还没有导入到Flash创作环境中,我现在没有时间这么做(到处都有太多对它们的引用)。我希望有一个我错过的选项,允许这种打包出口,但我还没有找到类似的东西

我没有访问Flex或mxmlc的权限(因为as是基于时间线的,所以它们不一定会帮助我)。有什么想法吗

谢谢

另外,如果没有办法完全按照我说的去做,我可以把所有的资产放在一个“资产”文件夹或类似的东西里,所以我只能带着main.swf和一个资产文件夹。这里的问题是,所有对资产的引用都假定它们与main.swf文件位于同一文件夹中,因此所有内容都假定为本地的……是否有办法更改Flash中所有外部引用的范围(例如,代码中的所有本地引用都在/assets中搜索)?

嗨,Justin

听起来您需要考虑使用共享库。退房:

您可以使用swfmill/mtasc将SWF反编译为XML,并使用奇特的XSLT将它们重新组合并使用swfmill/mtasc重新编译

如果这不起作用,并且您正在使用MovieClip.loadMovie或MovieClipLoader.loadMovie,则可以重载它们的方法并截取url:

var realLoadMovie:Function = MovieClip.prototype.loadMovie;

MovieClip.prototype.loadMovie = function(url:String, method:String) {
    return realLoadMovie("assets/" + url, method);
}

var test:MovieClip = createEmptyMovieClip("testclip", getNextHighestDepth());
test.loadMovie("test.swf");

如果URL具有资源类型前缀(如file://

),则需要执行一些额外的字符串解析。嵌入swf时,可以添加一个基本参数,如align、scale等。如果设置了base,则所有相对URL将以您定义的任何路径作为前缀(嗯,几乎所有;视频和文件引用对象在这里是个例外)。
除此之外,我会使用nikaji的解决方案。

eww…在时间轴上编码?用火焚烧它!共享库不是来自主SWF的外部文件吗?与将所有内容合并到单个SWF相反?我的错误是,返回是不必要的。