首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Actionscript: SWF文件不将数据记录到txt,而编译器记录数据。

Actionscript: SWF文件不将数据记录到txt,而编译器记录数据。
EN

Stack Overflow用户
提问于 2015-10-17 18:53:50
回答 1查看 42关注 0票数 0

我正试图在ActionScript中做一个心理实验。参与者的性能将存储在一个单独的.csv文件中。我已经编写了这段代码(显然,不是“这是要写的文本”,而是有一个数据数组,但是这个代码在相同的部分上出现了问题)。

代码语言:javascript
复制
import flash.net.FileReference;
import flash.events.Event;

var hint:String = "Please give a name for the file";
var labelling:String;

experiment_label.addEventListener(KeyboardEvent.KEY_UP, enter_pressed)

function enter_pressed (event:KeyboardEvent):void{
    if (event.keyCode == 13) {
        labelling = experiment_label.text;

        addEventListener(Event.ENTER_FRAME,saveFile);
        var ss:String = "this is text to write";
        var fileRef:FileReference;
        fileRef = new FileReference();
        function saveFile(event:Event):void
            {
                fileRef.save(ss, labelling+".csv");

                removeEventListener(Event.ENTER_FRAME, saveFile);
            }
    }
}

我面临的问题如下:当我从Flash下运行它时,它运行得非常完美,而且保存窗口也会弹出。但是,如果我单独运行一个.swf文件,它只会忽略保存命令。

你能告诉我,我能做些什么吗?或者我应该用另一种方法来存钱?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-20 20:45:04

当前代码将给您一个Error #2176 (使用try . catch来捕获它),因为FileReference.save()

不响应用户操作(如鼠标事件或按键事件)而调用。

为了避免这种情况,您必须删除Event.ENTER_FRAME事件侦听器,即使您不需要它:

代码语言:javascript
复制
function on_KeyUp(event:KeyboardEvent):void
{
    if (event.keyCode == 13)
    {
        save_File();
    }
}

function save_File():void
{
    try
    {   
        var fileRef:FileReference = new FileReference();
            fileRef.save('some text here', 'my_file.csv');
    }
    catch (e:Error)
    {
        trace(e.toString());
    }
}

希望能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33190384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档