Flash with perl
Shibuya.pm tech talk #8
Oct 1st, 2007
アジェンダ
- Flashおもしろいよ!
- as3と無償の開発環境
- Flashでjsを拡張する (ExternalInterface)
- かっちょいいファイルアップロード
- クロスドメイン通信
- XMLSocket
- バイナリSocket
Flashおもしろい!
無償の AS3 開発環境
...
jsをFlashで拡張する
- jsコンポーネントとしてのFlash
- 最初はここから入るのがオススメ
...
jsをFlashで拡張する
- jsコンポーネントとしてのFlash
- 最初はここから入るのがオススメ
- ExternalInterfaceというASクラスを使う
Flashは見せない
var so = new SWFObject(
"/swf/component.swf",
"component",
"0", "0", "9", "#000000");
...
Flashは見せない
var so = new SWFObject(
"/swf/component.swf",
"component",
"0", "0", "9", "#000000");
as から js をよぶ
ExternalInterface.call("window.alert", "hoge");
js から as をよぶ
as側で
ExternalInterface.addCallback("fn_name", asfunc);
でコールバック関数を登録すると、jsから
var as = navigator.userAgent.match(/MSIE/) ?
window["swf_id"] : document["swf_id"];
as.fn_name();
でよべる。
カッチョいいファイルアップロード
ギューンてやつです
Flashでやればサーバーサイドでめんどうなことしなくても、クライアントサイドでアップロードの進行状況がわかる
複数ファイル一気に選択できたりとかも
ファイル選んだ瞬間にアップロードしようとしているサイズが取れる
デメリットもある
クロスドメイン通信
crossdomain.xml
api.flickr.com の crossdomain.xml
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
www.yahoo.com の crossdomain.xml
<cross-domain-policy>
<allow-access-from domain="*.yahoo.com" />
</cross-domain-policy>
XMLSocket
perlでサーバーモジュール作った
- POE::Component::Server::JSONRPC
- TCP通信でのJSONRPCサーバー
- delimiter => "\0" すればXMLSocketさーばーに
- ソースはcodereposで
バイナリSocket
AS3からはバイナリも普通のSocketも扱える
Flashおもしろそうでしょ!
最後に
PSPでスライド操作
PSP側
- 標準Webブラウザ上で動くFlashアプリ
- FlashはMTASC製
PC側
- POE::Component::Server::HTTP
- Mozrepl (ZIGOROu++)
ご清聴ありがとうございました