いろいろな何かスマートフォン用の表示で見るいろいろな何かこの広告は、90日以上更新していないブログに表示しています。APIを使えば良さそうだけど、逆にデータをローカルファイルに保存したいときはどうしたら良いんだろう?ってことで、ちょっと調べてみました。方法1<a>タグのhrefに、保存したいデータを流し込む方法がありました。以下のHTMLファイルをブラウザー上で開き、何かメッセージを入力して保存ボタンをクリックして下さい。すると、ファイル保存を促すリンクが現れるので、右クリックでリンク先を保存して下さい。</body></html>以下のように、メッセージを入力して保存ボタンを押すとリンクが表示されます。表示されたリンクを右クリックして「リンク先を別名で保存」を選ぶと以下のようなダイアログが表示され、ローカルファイルとしてメッセージを保存することができました。ファイル名は指定できないみたいです。reflex方法2方法1だと右クリックから保存を選ばせたり、ファイル名が指定できなかったりと、いろいろ不便なので別の方法を調べてみました。ActionScriptのExternalInterfaceではJavaScriptとActionScriptが連携でき、ActionScriptのFileReference.save()ではActionScriptのデータをローカルファイルに保存できるということが分かりました。ASは一度も触ったことがなかったので、勉強代わりに「ASを経由してJSのデータを保存するプログラム」を書いてみました。先に結果だけ言うと、以下のサンプルは動かないです(^_^;)まずは、以下のActionScriptをWriteFile.asという名前で保存します。}}このWriteFile.asでは、JSのwrite()メソッドが呼び出されるとASのbridge()メソッドを呼び出す保存したいファイルの名前と内容をASの変数にコピーするマウスクリックイベントを発生させるマウスクリックイベントを検出してASのdoWrite()メソッドを呼び出すJSのwrite()メソッドから受け取った内容をローカルファイルに保存するという流れでローカルファイルにデータを保存しています。4の処理は無駄なように見えますが、FileReference.save()メソッドはマウスクリックまたはキー押下イベントのイベントハンドラなど、ユーザイベントに応答する形でのみ実行してください。それ以外の場合はエラーが発生します。4の処理を行っています。次に、WriteFile.asをコンパイルします。バイト)そして、コンパイルしてできたWriteFile.swfファイルと同じ階層に以下のHTMLファイルを置いてWebブラウザーからアクセスして下さい。</body></html>以下のように、適当にファイル名とファイルに保存したいメッセージを書いてsaveボタンを押して下さい。すると、ファイル保存ダイアログが表示されるはずですが...WriteFile.as内のFileReference.save()で例外が投げられので、上のようなアラートが表示されてファイル保存に失敗しました。アラートを表示する際、Errorクラスのmessageプロパティも一緒に表示するようにしています。#2176』の部分です。このページによると、エラーコード2176というのは、ポップアップウィンドウを表示するアクションなどの特定のアクションは、マウスをクリックしたりボタンを押したりするユーザー操作によってのみ呼び出すことができます。これは「dispatchEvent()メソッドで発生させたマウスクリックイベントではFileReference.save()が実行できない」という意味だと思います。blog.ryow.netおわりに方法1だと"一応"ローカルファイルに保存することができました。方法2だとActionScriptと連携しているため、実行時に制限がありローカルファイルに保存することができませんでした。次は、ちゃんとしたマウスクリックイベント発生させ、ローカルファイルにデータを保存するプログラムを書いてみようと思います。