Flash应用程序在您的驱动器上创建txt文件(无需安装脱机服务器)

时间:2012-12-16 10:12:33

标签: flash text input save local

我几天都在努力解决这个问题(但这只是因为我对编写脚本感到陌生)所以如果有人能指导我,或者更好地给我一个粗略的模板,我会很感激:< / p>

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

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

如果没有填充,则保存为

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

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

这个问题让我疯狂了好几天了。我依靠希望有人可以帮助我。 顺便说一句,我发现了一个主题可能会解决我的部分问题http://www.flash.cz/portal/clanek.aspx?id=1191,但无法使其发挥作用。我依赖需要有人牵着我的手来编写脚本:(

enter image description here

2 个答案:

答案 0 :(得分: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。我认为它们像饼干,但对于Flash。这远远超过提示最终用户将文本文件保存在他们可以更改的随机位置和文件名中。

答案 1 :(得分: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);
}