先日、こんな記事を読みました。
fladdict.net blog: オンライン上swfの天才的デバッグ方法
http://www.fladdict.net/blog-jp/archives/2005/06/swf_2.php
トレース使う代わりに、アウトプットしたい情報をクリップボードに送れ!! System.setClipboard(ここにデータ); 頭よすぎ。
まさに目から鱗のデバッグ方法。そんなことできるとは。
これ読んで、ふと、もしかしたら、長年不便に思ってたことを解消できるかもしれないと思い立ちました。
RakuCopy や amazie など、一度クリップボードを経由して、メールやBlogにペーストするツールを作っていると、たいていボタン一つでクリップボードに転送する機能をつけたくなります。
これは、Windows 版 IEでは可能なのですが、それ以外のブラウザでは、Javascript を使って、クリップボードに転送する方法がありませんでした。
Flash なら、setClipboard で、どのブラウザでも(Mac の Safariでも)クリップボードに転送できます。
なら、Javascript から Flash 経由で、クリップボードに転送できるのではないかと。
やってみると、結構やっかいなことが判明。
試行錯誤した挙句、以下のページに辿り着き、希望した動作が実現できました。
MustardLab.Developer.Flash.JavascriptToFlashCommunication
http://www.mustardlab.com/developer/flash/jscommunication/
サンプルはコチラ。 IE、Firefox((はてなブックマークにてFirefox for Linux では動作しないというコメントが。Linuxでは無理なのかな・・・。→やはりLinuxでは無理みたいです。Knoppix上のMozillaで確認。Linux以外で動作するようにしてみます。))、Opera、Safariなどでクリップボードに転送できることが確認できました。
動作条件は、Flash プラグインがインストールされていることと、 encodeURI が使えること((日本語を扱うために必要))です。 amazie の動作対象環境は、まさにそれなので、特に問題なければ、組み込んでみようかと思ってます。