0

我可以毫无问题地从外部库加载图形,但由于某种原因,所有音频都不会加载/播放。

这是我正在使用的加载器类...

package  
{
    import flash.display.LoaderInfo;
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.net.URLRequest;
    import flash.text.Font;

    public class LoadLibrary extends MovieClip
    {
        private var gear:MovieClip = new mcGear();
        private var txtLoading:BlankClip;

        private var _gameLib:String = "";

        private var _Impact:Font = new Impact();

        public function LoadLibrary(gameLibrary:String) 
        {
            _gameLib = gameLibrary;

            addChild(gear);
            gear.x = 512;
            gear.y = 384;
            gear.alpha = .2;
            gear.scaleX = .33;
            gear.scaleY = .33;

            txtLoading = new BlankClip(_Impact, "LOADING...", -400, -60, 800, 120, 26, "center", 5);
            addChild(txtLoading);
            txtLoading.x = 512;
            txtLoading.y = 525;
            txtLoading.alpha = .2;                      

            var request:URLRequest = new URLRequest(_gameLib);          
            LoadVars.LIBLOADER.contentLoaderInfo.addEventListener(Event.COMPLETE, gameLibraryLoaded);
            LoadVars.LIBLOADER.load(request);               
        }

        private function gameLibraryLoaded(e:Event):void 
        {
            removeChild(gear);
            removeChild(txtLoading);

            LoadVars.LIBLOADER.contentLoaderInfo.removeEventListener(Event.COMPLETE, gameLibraryLoaded);

            var loaderInfo:LoaderInfo = LoaderInfo(e.currentTarget);
            LoadVars.APPDOMAIN = loaderInfo.applicationDomain;

            dispatchEvent(new GameEvents(GameEvents.LIBRARY_LOADED));
        }

    }

}

以及我的主要课程中的功能......

private function loadLib():void 
{
    _loadGraphics = new LoadLibrary("Elemental_Library.swf");
    addChild(_loadGraphics);        

    _loadGraphics.addEventListener(GameEvents.LIBRARY_LOADED, test);
}       

private function test(e:GameEvents):void 
{
    trace("LOADED");

    var music:Sound = new GameMusic();
    music.play();           
}

一切正常,直到我尝试 music.play 并得到“1180:调用可能未定义的方法 GameMusic”。我尝试了其他几个音频剪辑,我得到了同样的信息。我尝试创建一个新库并仅导入一个音频文件,相同的消息。我验证我使用了正确的链接名称,而疯狂的部分是所有电影剪辑都可以从同一个库中加载。

4

1 回答 1

0

将测试更改为...

private function test(e:GameEvents):void 
{ 
    trace("LOADED"); 
    var musicClass:Class = Class(LoadVars.APPDOMAIN.getDefinition("GameMusic")); 
    var music:Sound = Sound(new musicClass()); music.play();     
}

我知道这很愚蠢:P

于 2013-04-04T20:34:21.867 回答