我正试图在ActionScript中做一个心理实验。参与者的性能将存储在一个单独的.csv文件中。我已经编写了这段代码(显然,不是“这是要写的文本”,而是有一个数据数组,但是这个代码在相同的部分上出现了问题)。
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文件,它只会忽略保存命令。
你能告诉我,我能做些什么吗?或者我应该用另一种方法来存钱?
发布于 2015-10-20 20:45:04
当前代码将给您一个Error #2176 (使用try . catch来捕获它),因为FileReference.save()
不响应用户操作(如鼠标事件或按键事件)而调用。
为了避免这种情况,您必须删除Event.ENTER_FRAME事件侦听器,即使您不需要它:
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());
}
}希望能帮上忙。
https://stackoverflow.com/questions/33190384
复制相似问题