js無名関数 with ExternalInterface

弊社フラッシュチームからは常識じゃん?的なことを言われましたが、FlashのExternalInterfaceに無名関数を使うというテクはなかなか使えるなぁ。

UserAgent取得

var ua = ExternalInterface.call("function() { return navigator.userAgent }");

JSつかってJSONパースさせてオブジェクトを得る

var json   = '{foo:"bar"}';
var object = ExternalInterface.call("function(json) { return eval('('+json+')') }", json);

などちょっとしたことやるならjsファイルでなんかやらなくてもas内だけで完結できる。

ちょっとがんばればasクラスだけでjsの正規表現つかうラッパークラスとかもできそうだけど、もうありそうかな。