as3でテキストファイルを作成、ダウンロードする

テキストファイルをローカルにダウンロードしたかったんです。

そのためにAIRを作るのはアホらしいと思いながら試したところ、あっさり動きました。flash player10です↓

やってることは、単純にStringをfilereference.saveでローカルダウンロードしてるだけ。
これって、ブラウザ上でテキストだけじゃなく、JSやCSSも作ってダウンロードできそう。便利。

mxml

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
width="300" height="200">
<mx:VBox>
<mx:Label text="テキストを入れてね" />
<mx:TextArea id="myTa" height="100" width="200" />
<mx:Button label="toTXT" click="clickTxtBtn(event)" />
</mx:VBox>
<mx:Script>
import flash.net.FileReference
private function clickTxtBtn(e:MouseEvent):void{
var _str :String = myTa.text;
var fileRef:FileReference = new FileReference();
fileRef.save( _str, "textarea.txt" )
}
</mx:Script>
</mx:Application>

この記事には、カテゴリ flex タグは がつけられています。

as3でテキストファイルを作成、ダウンロードする への4件のフィードバック

  1. sho-T より:

    ryowさん、ご無沙汰してます。まずはGAの認定試験の合格おめでとうございます!
    以前、AS3の2つのコンボボックスの件でお世話になりました。あれから少しずつ勉強を重ねていますが、単純なことで引っ掛かっていますので助言をお願いします。
    HTMLのボタンをクリックするとHTML上にFlashで作ったアンケートをレイヤー表示をさせるというものです。FlashというよりもHTMLのタグで行うものなのでしょうか?
    またそのやり方を教えてください〜。お願いします

  2. ryow より:

    >sho-Tさん
    こんにちは!おひさしぶりです。ありがとうございます。
    考えられてることって、ブログパーツなどでよくある方法だと思います。
    ステップは、
    1.HTML上のボタンやリンクをクリック
    2.onclickでjavascriptが動く
    3.そのjavascriptは、
    3-1.動的にdiv要素を作り、bodyに追加
    3-2.そのdivにcssを適用
    3-3.div内でflashを読み込む
    という感じですかねー。
    あるいは、
    最初からflashが入ったdivを作っておいて、ページを開いた時点では
    cssでdisplay:none;にしておき、ボタンを押したときにdisplay:block;に切り替えるとか。
    こちらもjavascriptでの操作になりますね!

  3. sho-T より:

    返事が遅くなりまして申し訳ありません。インターネットの出来ぬ出張先から今朝戻ったばかりです。親切に解説していただいてありがとうございました。最近ではAS3が少しイジれるようになりましたが…HTMLは幼稚園レベルなのです。ryowさんの解説を参考に一日掛けてやってみましたが、今一つウマくいきません…自分の知識とスキルのなさに嘆くばかりです。
    大変、お手数ですが簡単な例をお願いしま〜す!
    本当に手が掛かる奴で申し訳ありません。