【问题标题】:flash app to create txt file on your drive (without installing ofline server)flash 应用程序在您的驱动器上创建 txt 文件(无需安装离线服务器)
【发布时间】:2012-12-16 10:12:33
【问题描述】:

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

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

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

如果没有填写,则保存为

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

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

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

【问题讨论】:

    标签: flash text input save local


    【解决方案1】:

    假设我理解这个问题......不使用 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。这比提示最终用户将文本文件保存在他们可以更改的可能随机位置和文件名要好得多。

    【讨论】:

    • 感谢您的回复,但我希望离线进行。所以 AIR 肯定会是这样。如果我理解脚本。我被困在 as2.0 上,甚至我只能用于动画控制。你能告诉我如何通过 Flash AIR 项目做到这一点吗?请和我一起完成整个应用程序行,包括启动它并使保存按钮处于活动状态的事件。否则我很可能会在找到我发布的链接后继续挣扎。我认为这就是 InputText 部分的解决方案,只是不知道如何使用它。再次感谢。
    【解决方案2】:

    问题解决了。

    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-06-07
      • 2012-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-12
      相关资源
      最近更新 更多