ExternalInterfaceに文字列を渡すときは二重のエスケープが必要?

なりゆきでActionScript3を始めることになっちまいました。先達の皆様、よろしくお願いします。近くの書店を巡ってみたけど、AS3の本ってHowTo系のものが多いんですかね。JSでいうところのサイ本みたいなのがあると良いなあ。

さて、僕がFlashでやりたいことが「Javascript側からFlashにデータを渡し、加工後のデータをJavascriptで受け取る」というものなので、ExternalInterfaceを使ってみた訳なのですよ。
AS3からJSに文字列を渡すとき、うまくいくのがこちら。

ExternalInterface.call("sendToJavaScript", "a");

うまくいかないのが、こちら。

ExternalInterface.call("sendToJavaScript", "\\");

なんでやねん。
FireBugのコンソールに以下のようなエラーメッセージが出ているところを見ると、文字列を送るときには多重にエスケープしなきゃいけない(Java正規表現を書くときみたいに)のかもしれない。

missing ) after argument list
try { __flash__toXML(sendToJavaScript("\")) ; } catch (e) { "<undefined/>"; ...

なので、以下のように修正。

ExternalInterface.call("sendToJavaScript", "\\\\");

これを実行すると、JS側には \ が通信されました。

……って、ちょっと酷くないですかコレ。初Flash + AS3の僕になんたる仕打ち。英語Blogをあたってみると「ExternalInterfaceは悪魔の所行」とか「ExternalInterfaceを実装した奴はクビにしてくれ」とか色々書かれてますが、僕のささやかな一票も投じさせていただきたく。