加载SWF并让加载的SWF动态加载文本(在运行时)



不确定我尝试做的事情是否可行。我需要加载一个swf,并让加载的swf本身在运行时加载一个json文件。

作为一种替代方案,我是否可以在加载后用json"注入"已加载的swf??

这是加载的swf和json文件的完整代码。它只是加载一个JSON文件,并使用它来填充一个textField。它独立运行很好。。。

package
{
    import flash.display.*;
    import flash.events.*;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import com.greensock.*;
    public class DynamicTextSWF extends MovieClip
    {
        public var marquee : MovieClip;
        private var _loader:URLLoader = new URLLoader();
        private var _request:URLRequest = new URLRequest();
        public function DynamicTextSWF()
        {
            this.addEventListener(Event.ADDED_TO_STAGE, onAdded);
        }
        private function onAdded(e:Event):void {
            _request.contentType = "application/json";
            _request.url="config.json";
            _loader.load(_request);
            _loader.addEventListener(Event.COMPLETE,loadConfirm);
            _loader.addEventListener(Event.COMPLETE,decodeJSON);
            TweenLite.to(marquee,12,{x:stage.stageWidth,delay:2 });
        }

        private function loadConfirm(e:Event):void {
            trace("Load Successful" + "n");
        }
        private function decodeJSON(event:Event):void {
            var loader:URLLoader = URLLoader(event.target);
            trace(loader.data.toString() + "n");
            var result:Object = JSON.parse(loader.data);
            trace('result..content.description ='+result.content.description);
            marquee.info.text = result.content.description;
        }
    }
}

这是json文件

{
    "name": "ticker0",
    "content": {
        "type": "text",
        "description": "This is ticker text that is loaded dynamically",
        "required": true
    },
    "tween": {
        "type": "x",
        "duration": 4,
        "delay": 2
    },
    "style": {
        "font": "Futura",
        "color": "blue",
        "size": 12
    }
}

您应该能够将任意数量的SWF加载到彼此中,然后再将其他资产加载到它们中,所以我认为您需要计算出当将DynamicTextSWF类加载到另一个SWF时,它在什么时候失败。

假设你有办法看到跟踪语句,我会在DynamicTextSWF构造函数中放更多的跟踪语句,一个放在它的onAdded方法中,看看它能走多远——DynamicTextDWF实例是否添加到了后台?。按照建议,我还将为IOErrorEvent.IO_ERROR添加一个带有另一个跟踪语句的侦听器。

我使用了一个名为Vizzy的工具,它允许我在Flash调试播放器的浏览器中播放时查看Flash调试内容的跟踪输出。这还允许您查看Flash Player策略日志,该日志会显示哪里出现了安全错误。

我还使用了一个名为Charles的工具,它可以让你查看网络请求(有点像Chrome DevTools中的网络面板,但它做了很多有用的事情)-这可以让你看到是否有任何404请求,如果你的SWF在错误的URL上请求JSON数据。

最新更新