工数見積もりが出来そうな名前だけど実は出来ない、Adobe Cocomoを試す(勿論FlashDevelopで)

  • このエントリーをはてなブックマークに追加
  • 0

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;」「&gt;」「&amp;」と書いてやる必要があることを忘れないように。
パスワードに万が一「&lt;」が入ってると、
エラーにもならずただパスワードが違いますと言われるだけで気付かないかも知れない。
ちゃんと「&amp;lt;」という値にしておこう。
勿論基本原則としては、記事にもあるとおりこんな所に平文のパスワードを書くような
コーディングをしてはいけない。

あと、自分で作ったルームを使うためには、
タグ「rtc:ConnectSessionContainer」の属性roomURLを変更する。
記事で言うと(3)ね。

ActionScript

  1. roomURL="http://connectnow.acrobat.com/<アカウント名>/<ルーム名>"

これでよし。

コンパイルして実行してみよう。ちゃんとホワイトボードが出る。

role

さて、実はCocomoにはroleと言う概念がある。
例えば、これはホワイトボードのサンプルを2つのアカウントで実行してみたもの。

ルームを作ったアカウント
ルームを作ったアカウントとは別のアカウント

ご覧のように、ルームを作ったアカウントとは別のアカウントの場合、
編集は出来ない。
デバッグログを見たところ、ルームを作ったアカウントはこんな感じで、

ActionScript

  1. RECEIVED LOGIN AT SESSION
  2.   .user descriptor from server [object]
  3.     \\
  4.     .displayName [string]= <名前(苗字と名前)>
  5.     .userID [string]= <何か一意っぽい文字列>
  6.     .affiliation [number]= 100
  7.     .role [number]= 100

違う方はこんなだった。.roleの値が違う。

ActionScript

  1. RECEIVED LOGIN AT SESSION
  2.   .user descriptor from server [object]
  3.     \\
  4.     .displayName [string]= <名前(苗字と名前)>
  5.     .userID [string]= <何か一意っぽい文字列>
  6.     .affiliation [number]= 100
  7.     .role [number]= 10

APIドキュメントのクラスUserRolesを見ると、それぞれの値の意味が分かる。
幾つかroleがあるようなので、管理方法についても
学ぶ必要があるだろう。
Developer’s Guideによれば、examples\CustomRosterが参考になるようだ。

ローカル開発

さて、実際開発作業中に毎回毎回Adobeに接続するのは面倒なので、
ローカルな環境で開発を行う。

Cocomo SDK内のextras\LocalConnectionServer.airをインストールし、
起動するとローカルな環境での開発が可能になる。
このAIRアプリはAdobeのサーバと大体同じように動いてくれるので、
テストにはもってこいだ。
ただし、このローカル環境を使うには特別な接続が必要になる。
例えば、先程までの、Cocomoに接続するアプリはこんな風だった。

  1. <rtc:AdobeHSAuthenticator
  2.        id="auth"
  3.        userName="Adobe IDを入れてください"
  4.        password="Adobe IDのパスワードを入れてください"  />
  5.        
  6.     <rtc:ConnectSessionContainer roomURL="ルームのURLを入れてください" id="cSession" authenticator="{auth}" width="100%" height="100%">

が、ローカル環境の場合、こうなる。

  1. <rtc:LocalAuthenticator id="auth" userName="適当にユーザ名を入れてください"/>
  2.     <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を変える機能を使う方法はない!ってことか?

スポンサーリンク
スポンサーリンク
  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク