Flash向けGoogle AJAX Feed API

こんなのがあった。
Flash やその他 JavaScript を使用しない環境New!
http://code.google.com/intl/ja/apis/ajaxfeeds/documentation/#fonje
crossdomain.xmlも * 指定だから
http://ajax.googleapis.com/crossdomain.xml
PLAIN TEXT
XML:

<?xml version="1.0"?>

<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">

<cross -domain-policy>

   <allow -access-from domain="*" />

</cross>

Flashだけで指定のRSS読めますね。

Adobe Stratusサンプルを読み解く

Stratus Sample Application
がコードといっしょに公開されているので読んでみる。
■NetConnectionでAdobeの提供しているrtmfpサーバstratusにつなぐ
予めDeveloperKeyを手に入れておく。
PLAIN TEXT
Actionscript:

netConnection = new NetConnection();

netConnection.addEventListener(NetStatusEvent.NET_STATUS, netConnectionHandler);

netConnection.connect("rtmfp://stratus.adobe.com/" + DeveloperKey);

NetStatusEventの NetConnection.Connect.Sucess になると、
NetConnection.nearID がとれる
この64桁のIDが、他のPeerから自分につなぐために、
相手が知る必要のある情報
webサービスに登録しておいて、
ユーザー名と照合できるようにしておく
#これがHttpIdManager.asのお仕事
なんだろサンプルでは4つのNetStream使ってるけど、
お互いの2つだけでいけそうだなぁ。
■音声/映像のやり取り
ユーザー名知ってる人に電話かけようかなと思ったら、
webサービスに照合して、相手の64桁のIDをもらい、
それをNetStreamに渡す(identity)
PLAIN TEXT
Actionscript:

incomingStream = new NetStream(netConnection, identity);

incomingStream.play("media-callee");

playすれば音が鳴るし、VideoにattachNetStreamすれば相手の映像が見える
出す方は、DIRECT_CONNECTIONS設定してpublishする
PLAIN TEXT
Actionscript:

outgoingStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);

outgoingStream.publish("media-caller");

publish,playに渡す引数は、電話かける方はmedia-caller,受ける方はmedia-calleeとしてるけどなんでもよさそう。
ルールを決めておけばよい。
↓clientにonPeerConnectって関数を入れておくと、
誰かPeerがつないできたときに、farIDが取れる。
onPeerConnectがtrueを返せば接続ok、
falseを返せば接続ngッぽいので、
非接続側でもう一度webサービスにfarIDを照合して誰が電話かけてきたのか着信履歴表示や着信拒否ができそうだね
PLAIN TEXT
Actionscript:

var o:Object = new Object

o.onPeerConnect = function(caller:NetStream):Boolean {

    status("Callee connecting to media stream: " + caller.farID + "\n");

    return true;

}

outgoingStream.client = o;

■RPC
NetStream.sendを使えばPeer2PeerのRPCも簡単。
PLAIN TEXT
Actionscript:

outgoingStream.send("onIm", userNameInput.text, msg); [...]

cpan authorになりました

mashあいてたー
CPAN Recent Changesに自分の名前のるのうれしいなー
意外に簡単でびびる。PAUSEも2日くらいで来たなぁ。
最初からshipitのお世話になりました。いい。
最初のモジュールは
http://search.cpan.org/~mash/Lingua-JA-Yomi-0.01/lib/Lingua/JA/Yomi.pm
http://svn.coderepos.org/share/lang/perl/Lingua-JA-Yomi/trunk/
ちょいちょいつくったものをupしてみますよ。
誰かが便利になるといいですなぁ。
よろしくお願いいたしますm(._.)m