AIRとBox2DでTwitterのみんなを表示してみたよ!

2009 年 8 月 20 日


最近はず~っとAIRばかりやってますが、今回もAIRネタです。

今回はTwitterのフレンドを表示してみよう!AIRで(Box2Dも使ってね☆)。
ということでちょっとがんばってみました。
結果は下のスクリーンキャストからどうぞ。

通常、Twitter APIでフレンドの発言を取得するにはBasic認証を突破しなければいけないのですが、前々回のパパパコメントを利用してTwitterの発言を流すPaPaPaTwitを作ってみたよ!(ネタ用)で使用したPHPでBasic認証を突破してます。

Box2Dの世界作成についてはお手本どおり。

var timerNum:int = Math.min( 30, rss.user.length() );

/* ここで画像分繰り返している */
dynamicTimer = new Timer( 300, 50 );
dynamicTimer.addEventListener( TimerEvent.TIMER, loadImg );
dynamicTimer.start();

/* タイマーが起動したら、画像のLoadを開始 */
private function loadImg( evt:TimerEvent ):void {
 try {
  var num:int = evt.target.currentCount - 1;
  var urlReq:URLRequest = new URLRequest( rss.user[ num ].profile_image_url );
  var loader:Loader = new Loader();
  loader.contentLoaderInfo.addEventListener( Event.COMPLETE, loadImgCompleteHandler );
  loader.load( urlReq, new LoaderContext( true ) );
 }
 catch ( e:Error ) {
  trace( e );
 }

}

画像が読み込めたらお手本どおりに画像をBox2Dオブジェクトに対して画像を貼り付けて(?)、あとはEnterFrameで描画を更新するだけです。

/* 描画を更新 */
private function update( evt:Event ):void {
 world.Step( timeStep, iterations );
 
 /* 画像を貼り付けたSpriteをそれぞれのBox2Dオブジェクトに追随 */
 for ( var bb:b2Body = world.m_bodyList; bb; bb = bb.m_next ) {
  if ( bb.m_userData is Sprite ){
   bb.m_userData.x = bb.GetPosition().x * SCALE;
   bb.m_userData.y = bb.GetPosition().y * SCALE;
   bb.m_userData.rotation = bb.GetAngle() * ( 180/Math.PI );
  }
 }

 UpdateMouseWorld();
 
 /* マウスイベント */
 MouseDrag();
 Input.update();
}

今回は以下のサイト様を参考にさせていただきました。