Adobeが色々と物を出してきたが、WindowsユーザだけどCygwinユーザでない俺としては、
錬金術は錬金術師たちに任せて、
docomoCocomoを試してみることにする。
Adobe知らない人でも、Cygwin得意な人とかはAlchemyオススメ。
今なら、色んなライブラリを移植してヒーローになれる。
導入
まず、導入記事としては以下の記事が非常に参考になる。
18日(米国時間)、Adobe SystemsはMAX 2008カンファレンスの開催に合わせて、コードネーム「Cocomo」と呼ばれるWebサービスを公開した。
Cocomoは、最近流行りのPaaS(Platform as a Service)モデルによるサービス提供を目指すものであり、Adobeにとっては新しいビジネスモデルの試みとなる(どのようにしてCocomoから収益を上げていくかは、まだ未定とのこと)。
【ハウツー】Adobeの新たな挑戦「Cocomo」を早速試してみた! | エンタープライズ | マイコミジャーナル
と言うか、ほぼこれを見るだけでいいんじゃない?ってくらいの勢いだ。
とりあえず、記事に従ってSDKをダウンロードし、
どこか適当なフォルダに「Cocomo
」とでも名前をつけて展開しておこう。
あと、記事中にもあるCocomoのトップページ下部にある「New Dev? Sign up!」から
アカウントを作る場合、パスワードは6?12文字と言う制限があるので気をつけよう。
これに違反していると、Createボタンを押しても警告どころか反応が無い。
俺がどれだけ???ってなったか・・・。
FlashDevelopの設定
次は設定だ。記事の後半の設定部分がFlex Builder用になってはいるが、
別にCocomoのcocomo.swcをFlashDevelopに設定すればいいだけだ。
まずFlashDevelopのプロジェクトを作り、
プロジェクトのプロパティ設定で、
Classpathにcocomo.swc
が入っているフォルダを追加する。
そうするとプロジェクトパネルのツリー内に追加したフォルダがあるので、
開いてを見つけ、右クリックして「Add To Library」を選択。
下の「playerglobal.swc
」のように青色になったら成功。
コンパイル・実行
以上で準備完了だ。
記事にあるサンプルをコンパイルしてみよう。
新しいMXMLファイルを作り、名前をつける。
そして、コンパイル対象に指定しておく。
で、記事のコードをコピーし、幾つか編集する。
タグ「rtc:AdobeHSAuthenticator
」の属性userName
と
password
を自分のAdobe IDに変更する。
記事で言うと(2)の部分だ。
ここで注意点だが、MXMLの属性なので、当然XMLの制限を受ける。
もしパスワードに「<
」とか「>
」、「&」などを使ってる場合、
「<
」「>
」「&
」と書いてやる必要があることを忘れないように。
パスワードに万が一「<
」が入ってると、
エラーにもならずただパスワードが違いますと言われるだけで気付かないかも知れない。
ちゃんと「&lt;
」という値にしておこう。
勿論基本原則としては、記事にもあるとおりこんな所に平文のパスワードを書くような
コーディングをしてはいけない。
あと、自分で作ったルームを使うためには、
タグ「rtc:ConnectSessionContainer
」の属性roomURL
を変更する。
記事で言うと(3)ね。
- roomURL="http://connectnow.acrobat.com/<アカウント名>/<ルーム名>"
これでよし。
コンパイルして実行してみよう。ちゃんとホワイトボードが出る。
role
さて、実はCocomoにはroleと言う概念がある。
例えば、これはホワイトボードのサンプルを2つのアカウントで実行してみたもの。
- ルームを作ったアカウント
- ルームを作ったアカウントとは別のアカウント
ご覧のように、ルームを作ったアカウントとは別のアカウントの場合、
編集は出来ない。
デバッグログを見たところ、ルームを作ったアカウントはこんな感じで、
- RECEIVED LOGIN AT SESSION
- .user descriptor from server [object]
- \\
- .displayName [string]= <名前(苗字と名前)>
- .userID [string]= <何か一意っぽい文字列>
- .affiliation [number]= 100
- .role [number]= 100
違う方はこんなだった。.role
の値が違う。
- RECEIVED LOGIN AT SESSION
- .user descriptor from server [object]
- \\
- .displayName [string]= <名前(苗字と名前)>
- .userID [string]= <何か一意っぽい文字列>
- .affiliation [number]= 100
- .role [number]= 10
APIドキュメントのクラスUserRoles
を見ると、それぞれの値の意味が分かる。
幾つかroleがあるようなので、管理方法についても
学ぶ必要があるだろう。
Developer’s Guideによれば、examples\CustomRoster
が参考になるようだ。
ローカル開発
さて、実際開発作業中に毎回毎回Adobeに接続するのは面倒なので、
ローカルな環境で開発を行う。
Cocomo SDK内のextras\LocalConnectionServer.air
をインストールし、
起動するとローカルな環境での開発が可能になる。
このAIRアプリはAdobeのサーバと大体同じように動いてくれるので、
テストにはもってこいだ。
ただし、このローカル環境を使うには特別な接続が必要になる。
例えば、先程までの、Cocomoに接続するアプリはこんな風だった。
- <rtc:AdobeHSAuthenticator
- id="auth"
- userName="Adobe IDを入れてください"
- password="Adobe IDのパスワードを入れてください" />
- <rtc:ConnectSessionContainer roomURL="ルームのURLを入れてください" id="cSession" authenticator="{auth}" width="100%" height="100%">
が、ローカル環境の場合、こうなる。
- <rtc:LocalAuthenticator id="auth" userName="適当にユーザ名を入れてください"/>
- <rtc:ConnectSessionContainer id="cSession" authenticator="{auth}" width="100%" height="100%" >
見ての通り、rtc:AdobeHSAuthenticator
がになっており、
またrtc:ConnectSessionContainer
から属性roomURL
が消えている。
このローカル環境のサンプルは、examples\LocalConnection\LocalConnection.mxmls
にある。
実はこのローカル用サンプル、色々と機能を詰め込んであるので、それはそれで面白い。
ただし、このサンプルのコメントにこうある。
All users enter the room as host, though the LocalConnectionServer does support roles and role change functions.
どういうことだ?roleを変える機能はあるけど、みんなhostになっちゃうよ?
roleを変える機能を使う方法はない!ってことか?
最新コメント