• ベストアンサー

FLASHから外部テキストへ書き込み

FLASH上で書いたテキストデータの保存に関し、てsharedObjectを使用して生成されるSOLファイルに保存するのではなくて、自分でファイル名、保存する場所を自由に保存することはできるのでしょうか? 読み込みのloadVariblesと相対するようなものを探しています・・・

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

Flashは基本的にそういうことができません。 できないからこそ,Flashの人気があるのだと思います。 もしできたら,Flashを使ったウィルスなどが作れてしまう。ウィルスではないにしろ勝手に変な所に思いも寄らないファイルを保存されてしまうからだと思います。 また,エンドユーザが作成したファイルに同名で上書きしてしまうなどということも起こる可能性があります。 Flashより激しいJavaScriptでもブラウザを通してクライアントサイドから見た場合そういうことは基本的にできないはずです。 テキスト保存ができれば便利だとは思いますが,それを悪用する人が出てきたり,制作側は善意のつもりでもエンドユーザーにとっては不愉快または損失につながるようなトラブルが起きる可能性があるからでしょう,保存はできません。 でも,完璧に無理なわけではありません。現にWeb上ではFlashで作成されたテキストデータをサーバ上に保存できています。どうやっているかというと,ご存じの通り,CGIなどに変数を送って,CGIからサーバ上にデータを保存しているわけです。 ローカルで同じようにするのであれば,CGIに変わるスクリプトに変数を送って保存すれば良い事になります。 Windowsの場合,CGIに代わるものとして近いものはVBScriptではないかと思います。fscommandなどを使って,VBScriptにデータを送信し,それをVBScriptによって,保存するというようなことです。これはWindows+IEの限定方法と考えた方が良いと思います。 でも,普通,VBScriptはJavaScriptよりさらに激しい(激しすぎる)ので,まずブラウザがブロックします。エンドユーザがかなりセキュリティを下げた状態で,なおかつ,警告ダイアログが出てそれにOKした上で実行されると思います。 つまり,ネットでは使えないと考えた方が良いです。 ローカルマシーンに保存した状態で,使うのであれば,SWFファイルを貼り付けた「○○.htmlの拡張子を「○○.hta」に変えたHTAファイルにすると,VBScriptはすんなり受け入れられます。 私は何度か実験していますが,うまく作動したり作動しなかったりで,使いこなせてはいません。 この方法での成功例を紹介されているサイトはここにあります。 「Flash Desktop Applications」 http://dawgsdk.cside.com/desktop/ でも,こういうことをされるのは珍しいのでしょう。ここ以外で無事作動しているサンプルは見つかりませんでしたし,過去はできていでも,現在はできない方法を示されているサイトはありますが,そういう方法が書かれてあるサイトはほんの少ししかないです。 また,裏技的存在ですが,Flash5に限って,それもSWFではなくプロジェクタ(EXE)にパブリッシュしたときだけに限って,テキストが保存できたようです。 おそらくマクロメディアも想定しなかったバグのようなものだと思います。 Macromedia Flash非公式テクニカルノート http://www.fumiononaka.com/TechNotes/Flash/FN0108003.html まあとにかく,できないこともないですが,できないと考えた方が良いと思います。 保存したい場合は,CGIなど経由でサーバ上に保存するのが一般的だと思います。

参考URL:
http://dawgsdk.cside.com/desktop/,http://www.fumiononaka.com/TechNotes/Flash/FN0108003.html
yosshi13
質問者

お礼

sassakun様ありがとうございました。 やはり単体ではやるには厳しいのですね^^; CGI勉強してみようと思います。

関連するQ&A

専門家に質問してみよう