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>
ryowさん、ご無沙汰してます。まずはGAの認定試験の合格おめでとうございます!
以前、AS3の2つのコンボボックスの件でお世話になりました。あれから少しずつ勉強を重ねていますが、単純なことで引っ掛かっていますので助言をお願いします。
HTMLのボタンをクリックするとHTML上にFlashで作ったアンケートをレイヤー表示をさせるというものです。FlashというよりもHTMLのタグで行うものなのでしょうか?
またそのやり方を教えてください〜。お願いします
>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での操作になりますね!
返事が遅くなりまして申し訳ありません。インターネットの出来ぬ出張先から今朝戻ったばかりです。親切に解説していただいてありがとうございました。最近ではAS3が少しイジれるようになりましたが…HTMLは幼稚園レベルなのです。ryowさんの解説を参考に一日掛けてやってみましたが、今一つウマくいきません…自分の知識とスキルのなさに嘆くばかりです。
大変、お手数ですが簡単な例をお願いしま〜す!
本当に手が掛かる奴で申し訳ありません。
うーんと
http://ryow.net/blog_old/2008/09/28-153644.php
こちらは参考になりませんか??
Flashを押すと始まる、ですがJsをコールしてるのは同じなので、実現したいことはこんな感じかなと。