Actionscript 3 在第2帧上加载嵌入SWF?

Actionscript 3 在第2帧上加载嵌入SWF?,actionscript-3,Actionscript 3,是否可以在第2帧上加载嵌入在另一个swf中的swf 我需要产生一个单一的,主要的swf,其中包含一个声音的swf。声音swf包含用于代码实例化的导出声音文件。声音swf根据主swf的版本而变化,因此希望在编译时嵌入。目前,我使用[embed]元数据标记将声音swf嵌入到主swf代码中,所有这些都可以工作。然而,这似乎在第1帧上加载了SWF,我更希望在预加载程序运行后在第2帧上加载 我在网上查过,这个问题似乎被问到了,但从未真正得到回答 为了澄清,我在一个主类中嵌入了一个swf及其符号,代码如下:

是否可以在第2帧上加载嵌入在另一个swf中的swf

我需要产生一个单一的,主要的swf,其中包含一个声音的swf。声音swf包含用于代码实例化的导出声音文件。声音swf根据主swf的版本而变化,因此希望在编译时嵌入。目前,我使用[embed]元数据标记将声音swf嵌入到主swf代码中,所有这些都可以工作。然而,这似乎在第1帧上加载了SWF,我更希望在预加载程序运行后在第2帧上加载

我在网上查过,这个问题似乎被问到了,但从未真正得到回答

为了澄清,我在一个主类中嵌入了一个swf及其符号,代码如下:

[Embed(source = 'sound.swf', symbol = 'music')] public var music:Class;

嵌入swf和符号加载到初始主swf负载上。如果我将声音swf设置为在第2帧上导出,则它不会编译。主swf中的库内容加载到帧2上,以允许帧1中的预加载程序运行。我试图找出是否有办法使sound.swf中的资产也加载到frame2上。

这似乎解决了我的问题。下面是示例代码。我嵌入了一个包含声音资源的swf,但对mimeType使用application/octet流。然后,我可以使用ActionScript加载程序类加载swf。然后可以使用getDefinitionByName实例化加载的swf中的符号。此外,如果有对加载的swf的引用,可以使用getDefinition进行实例化,请参见下面注释掉的行。到目前为止,这对我有效

package
{
    import flash.display.Loader;
    import flash.display.MovieClip;
    import flash.media.Sound;
    import flash.events.Event;
    import flash.system.LoaderContext;
    import flash.system.ApplicationDomain;
    import flash.utils.getDefinitionByName;

    public class TestEmbed extends MovieClip
    {
        [Embed(source="EmbedAudio.swf", mimeType="application/octet-stream")]
        public var EmbedAudio : Class;
        public function TestEmbed()
        {
            super();

            // load embed swf
            var context : LoaderContext = new LoaderContext (false,ApplicationDomain.currentDomain);
            context.allowCodeImport = true;
            var loader : Loader = new Loader ();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete);
            loader.loadBytes (new EmbedAudio (), context);

        }

        private function loader_complete(evt:Event):void {
            // instantiate the class
            /*var ClassDefinition:Class = evt.target.applicationDomain.getDefinition("k3n1_01") as Class;*/
            var ClassDefinition:Class=getDefinitionByName("k3n1_01") as Class;
            var k3n1_01:Sound = new ClassDefinition();
            k3n1_01.play();
        }
    }
}

我真的不明白这个问题…有两个文件更实际:一个预加载程序和一个主电影。在同一个文件中预加载可能会给您带来问题,请参阅此文件。这是横幅还是有限制的东西?是的。我被限制为1个文件。