加载外部 SWF 会导致“找不到资源包消息”错误

Posted

技术标签:

【中文标题】加载外部 SWF 会导致“找不到资源包消息”错误【英文标题】:Loading of external SWF results in a "Could not find resource bundle messaging" error 【发布时间】:2011-01-29 03:40:14 【问题描述】:

我正在使用 flash.display.Loader 加载 this example SWF 作为加载 SWF 的用例,该 SWF 在我正在开发的应用程序中使用弹性图表组件。

这是我用来加载 swf 的代码:

Main.mxml:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="onCreationComplete(event);">
<mx:Script>
<![CDATA[

import mx.events.FlexEvent;
import myLoaderClass;

private function onCreationComplete( e:FlexEvent ):void

    trace("Init!");
    var l:myLoaderClass = new myLoaderClass();
    this.addChild(l);


]]>
</mx:Script>    
</mx:Application>

myLoaderClass:

package 
   
    import mx.core.UIComponent;

    import flash.display.DisplayObject;
    import flash.display.DisplayObjectContainer;
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.Event;
    import flash.events.ProgressEvent;
    import flash.net.URLRequest;
    import flash.text.TextField;
    import flash.text.TextFieldType;
    import flash.utils.Dictionary;



    public class JittRunner extends UIComponent 
    

        private var displayedObjects:Dictionary;

        public function JittRunner():void 
        
            displayedObjects = new Dictionary();

            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        

        private function init(e:Event = null):void 
        
            removeEventListener(Event.ADDED_TO_STAGE, init);
            var mLoader:Loader = new Loader();
            var mRequest:URLRequest = new URLRequest('ChartSampler.swf');
            mLoader.load(mRequest);         
        

    

问题是,加载 swf 的那一刻,我收到以下运行时错误:

错误:找不到资源包消息 在 mx.resources::ResourceBundle$/getResourceBundle()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\resources\ResourceBundle.as:143] 在 mx.utils::Translator$cinit() 在全局$init() 在 mx.messaging.config::ServerConfig$cinit() 在全局$init() 在 _app_FlexInit$/init() 在 mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::docFrameHandler()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:3217] 在 mx.managers::SystemManager/docFrameListener()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:3069]

我在这里做错了什么?

【问题讨论】:

【参考方案1】:

我认为您在发布的代码中没有做错任何事情。我刚刚将它粘贴到一个新项目中(将 JittRunner 重命名为 myLoaderClass),它编译并运行良好(没有做任何事情,但没有错误)。

【讨论】:

以上是关于加载外部 SWF 会导致“找不到资源包消息”错误的主要内容,如果未能解决你的问题,请参考以下文章

加载损坏的 swf 文件没有显示任何错误

as3 从网络外部加载 swf 以控制从网络外部加载的 swf

如何正确加载多个外部 swf 文件?

Adobe Air 加载内部带有 allowDomain('*') 的外部 swf

当外部加载swf时,removechild不工作

从 Flash 中的 swf 文件外部加载 xml 文件