おひさしぶりの、hidakaです。

去年、Flashブログのlevel0に延々Android記事ばかり書いてたらFlashの事を書けと言われて半年ほど消えていました。
しかし時代は変わり、level0に堂々とandroidの事を書けるようになったのです。OS2.2からFlash
 player 10.1載ったことですしみんな大好きスマートフォンでFlashがみれるようになったにも関わらず
世の中スマホFlashの話題が不足している。FlasherのほとんどはFlash動かないスマホに走ったとか
そんなことは無視で。
うん、情報なさすぎてびっくりした。みんなブラウザ上でみれればいいのね、そーなのね。

でもFlashが動くのはブラウザだけじゃないんですよ。アプリ内でも動くんですよFlash。
そしてアプリ内にHTMLエリアを作って、そこにFlashを表示するわけですが、アプリとwebview(HTMLエリア)
のJSは関数呼び合うことができます。
つまりJSとFlashも連携できてしまえばアプリとFlashが連携できるわけです。

それが下の例。下側がHTML領域。端末はNexus One、OS2.2、FP10.1です。
上のEditTextに入れたテキストをJSに渡し、JSがswfObjectを使ってHTML枠にFlashを
表示しています。夕方5時前はおなかすいているのです。

 

ss1.png



 

 

 これならべつにTextviewに表示すればいいじゃないってわけですが、よく見ましょう。
フォントが普段と違います。SWFに埋め込んであります。
Flashのテキストフィールドの数少ない(本当に少ない、本当に。冗談じゃなくほんと。)GJな機能として、
文字を指定して埋め込むことが可能です。
またテキスト以外にもFlashはタイムラインアニメーションが使えるという利点があります。
PNG画像をたくさん使ってアニメーションさせたりしなくても、コードを延々書いてアニメーションを書かなくても
アニメGIFで荒いの作ったりしなくてもアニメーションが可能です。

今回の処理の流れ
Java→JS呼び出し(パラメータに文字列)→SWFObjectでFlash描画(flashvarsでパラメータもらう)

AS側のコードはこれだけ。動作検証用なので変数の適当っぷりが伺えます。

var vars:Object = loaderInfo.parameters;

var a1:String = "default value";

if (vars["onFlashText"] != null ) {

a1=vars["onFlashText"];

}

tt.text=a1;


このあたり参考で。

Java→JSの参考
Webブラウザビューチュートリアル

 

swfObject + flashvars

 http://mtl.recruit.co.jp/blog/2007/10/swfobject_v20.html

HTML5飯