从任何文件夹加载本地保存的共享对象(.sol文件)

时间:2013-11-12 23:13:53

标签: actionscript-3 flash local shared-objects

这个问题让我发疯,希望你能帮忙。

基本上,我正在创建一个AS3 .swf,应该在许多不同的网站上运行,我将无法控制,并且可以从另一个我无法控制的.swf加载保存。我希望能够从其他目录中加载.sol文件,而不是归因于它运行的网站的目录。

有关详细信息,它是基于知名文本的游戏的角色查看器,我希望能够在桌面上加载保存。

游戏本身能够做到这一点,但它对我不起作用。如果它只在本地运行时才会很高兴,这是由消息来源建议的。

我能够加载一个保存的字节数组,并且跟踪它显示毫无疑问,它是我正在尝试加载的文件。

这是使用Adobe Flash Pro CS6编译的,适用于Adobe Flash Player 11.2,仅访问本地文件。

这是我一直在搞乱的代码,AS3参考示例和原始代码的混合,它给出了同样的错误。

为清晰起见,我没有添加所有处理程序,但它们基本上是'somethingHandler:'+ event。

    function openFile(btnName:String):void{
        filter = new FileFilter("Local Shared Object", "*.sol");
        file = new FileReference();
        file.browse([filter]);
        file.addEventListener(Event.SELECT, selectFile);
    }
    function selectFile(e:Event):void{
        file.addEventListener(Event.COMPLETE, loadFile);
        file.load();
    }
    function loadFile(e:Event):void{
        var tempFileRef:FileReference = FileReference(e.target);
        loader = new URLLoader();
        loader.dataFormat = URLLoaderDataFormat.BINARY;
        configureListeners(loader);
        try{
                var req = new URLRequest(tempFileRef.name);
                loader.load(req);
        }
        catch (error:Error){
                trace("error");
        }
    }
    private function configureListeners(dispatcher:IEventDispatcher):void {
        dispatcher.addEventListener(Event.COMPLETE, completeHandler);
        dispatcher.addEventListener(Event.OPEN, openHandler);
        dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
        dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
        dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
        dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
    }
    private function completeHandler(event:Event):void {
        var loader:URLLoader = URLLoader(event.target);
        trace("completeHandler: " + loader.data);
        var vars:URLVariables = new URLVariables(loader.data);
        trace("The answer is " + vars.answer);
    }

但我得到的只是:

          httpStatusHandler: [HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=0 responseURL=null]
          ioErrorHandler: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: 

0 个答案:

没有答案