Flash as3在本地打开文件(使用FlashPunk)

时间:2011-05-08 10:33:22

标签: xml flash actionscript-3 load

好的,所以目前我正在使用FlashPunk框架在as3中制作游戏。我设法设置了ogmo编辑器来使用它,结果很好!我打算将ogmo项目发送给一些朋友,以便他们可以自己为我的游戏制作一些关卡。但我遇到了一个问题。我希望我的朋友能够测试他们所做的级别,所以我开始尝试找到一个简单的打开文件对话框解决方案,Sp他们可以选择生成的XML文件(.oel),然后将其加载到实际游戏。但我找不到解决方案!谁能帮我?提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您的游戏是基于网络的,则必须使用FileReference类。如果它是基于空的,您可以使用File类。像这样:

文件参考:

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.FileReference;
    import flash.net.URLRequest;

    public class FileReference_event_select extends Sprite {
        private var uploadURL:URLRequest;
        private var file:FileReference;

        public function FileReference_event_select() {
            uploadURL = new URLRequest();
            uploadURL.url = "http://www.[yourDomain].com/yourUploadHandlerScript.cfm";
            file = new FileReference();
            file.addEventListener(Event.SELECT, selectHandler);
            file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            file.addEventListener(Event.COMPLETE, completeHandler);
            file.browse();
        }

        private function selectHandler(event:Event):void {
            var file:FileReference = FileReference(event.target);
            trace("selectHandler: name=" + file.name + " URL=" + uploadURL.url);
            file.upload(uploadURL);
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            var file:FileReference = FileReference(event.target);
            trace("progressHandler: name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
        }

        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }
    }
}

文件:

import flash.filesystem.File;
import flash.events.Event;

var sourceFile:File = File.documentsDirectory;
sourceFile = sourceFile.resolvePath("Apollo Test/test1.txt");
var destination:File = File.documentsDirectory;
destination = destination.resolvePath("Apollo Test/test2.txt");

来源:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filesystem/File.html

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/FileReference.html