2

我已经为此苦苦挣扎了几天(但这只是因为我对脚本不熟悉)所以如果有人可以指导我或者更好地给我一个粗略的模板,我将不胜感激:

一个由 6 行组成的小应用程序。每行应该有 2 个 TextInput 框和一个带有多个值(value1、value2、value3 ...)的 DropBox 并且会有一个按钮可以从所有行收集数据并将它们作为 .txt 文件以下列格式保存在本地驱动器上:

Line1 = [1,"abc123","abc123"]
line2 = [7,"abc123","abc123"]
...

如果没有填充,它将被保存为

line1 = [,"",""]
...

第一个数字(在我的示例中为 1 和 7)是 DropBox 每行中所选值的结果。引号的内容可以是每一行的那些文本 InputBoxes 中写的任何内容。

这个问题已经让我发疯了好几天了。我依靠希望有人可以帮助我。顺便说一句,我找到了一个可能回答我的部分问题的主题http://www.flash.cz/portal/clanek.aspx?id=1191,但无法使其工作..我需要有人拿着我的进入脚本世界:(

在此处输入图像描述

4

2 回答 2

0

假设我理解这个问题......不使用 AIR 或 Zinc,而是在不安装代码的情况下从浏览器运行,我所知道的将文件保存到用户硬盘驱动器的唯一方法是提示用户他们想要保存的位置文件。出于安全原因,用户必须接受才能保存它。为此,您可以考虑使用FileReference,例如:

import flash.net.FileReference;

function promptUserToSaveTextFile(fileContent:String)
{
    var ref:FileReference = new FileReference();
    ref.save(fileContent, 'someDefaultFileName.txt');
}

promptUserToSaveTextFile("contents of the file all in one string");

但是等等......共享对象可能是你想要的

纵观您要完成的工作,如果您想自动将一些数据保存到用户的本地计算机以供以后参考,请查看SharedObjects。我认为它们就像 cookie 但对于 Flash。这比提示最终用户将文本文件保存在他们可以更改的可能随机位置和文件名要好得多。

于 2012-12-17T04:04:10.507 回答
0

问题解决了。

import flash.events.MouseEvent;
import flash.net.FileReference;
import flash.events.Event;

ulozit.addEventListener(MouseEvent.CLICK,SaveFile);
function getData():Array
{
    var zoznam:Array = [];
    var seznam:Array = [pocasi1,pocasi2,pocasi3];
    var seznamnoc:Array = [pocasinoc1,pocasinoc2,pocasinoc3];
    var s:String = "";
    for(var i = 1;i < 13;i++)
    {
        s = "";
        s = "radek"+i +" = [" + seznam[i - 1].selectedItem.data + "," + seznamnoc[i - 1].selectedItem.data + ",";
        if(this["den" + i].length > 0)s += '"' + this["den" + i].text + '"' + ",";
        else s+= '"",';
        if(this["noc" + i].length > 0)s += '"' + this["noc" + i].text +'"';
        else s+= '""';
        s += "]";
        zoznam.push(s);
    }
    return zoznam;
}
function SaveFile(e:MouseEvent):void
{
    var s:String = "";
    var arrs:Array = getData();
    for(var i = 0;i < arrs.length;i++)s += arrs[i] + " " +"\n" + "\n";
    var f:FileReference = new FileReference();
    f.addEventListener(Event.COMPLETE,onSaveFileComplete);
    f.save(s,"pocasi.txt");
}
function onSaveFileComplete(e:Event):void
{
    e.currentTarget.removeEventListener(Event.COMPLETE,onSaveFileComplete);
} 
于 2013-01-15T11:26:25.437 回答