Date:  Wed, 17 Sep 2008 17:34:12 +0900
Subject:  【オブジェクト倶楽部: 2008-35号】
X-Mail-Count: 00260

       ┏━━━━━━━━━━━━━━━━━━━━━━━━━━■
       ┃                         ■┃
      ●┃● ● オ ブ ジ ェ ク ト 倶 楽 部   ■ ┃
       ┃                       ■  ┃
       ┗━━━━━━━━━━━━━━━━━━━━━━■━━━┛
                          No.251 2008/09/17

■ I N D E X
┃
┣【プログラミング】Flex2で体験するリッチクライアント [9]
┗【イベントレポート】「XP祭り2008」参加レポート [後編]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■━
■
┗【プログラミング】Flex2で体験するリッチクライアント [9]

つい先日クルマを乗り換えることになりました。まったくの私事ですが。。。
38年前のクラシックカーで、愛着を持っていたのですが、自らの年齢と環境の
変化に手放すことを決意しました。38年という年月は様々な変化を生むわけで
すが、私たちが今作っているものは、38年後どうなってますかね?平均年齢ぐ
らいまで生きれば、私も幸いにギリギリ目撃できそうです。時代の変化が激し
い昨今、でももし私が手がけたソフトウェアが稼動していたらスゴイな〜と思
う今日この頃です。

さて前回[*1]はマウスイベントを取得して様々なスクロール効果を付けてみま
した。今回のメルマガでは、画像を重ね合わせる手法を整理します。

● 選択している画像以外の表示幅を狭くする
画像を重ね合わせるときに、まずはじめに考える方法は、標記のとおりだと思
います。そこで、今回はoverrlapWidthという変数を使って、重ね合わせの幅を
定義してみました。実際に適用する箇所は、
・measure() -- 実際に描画する縦横サイズを返す処理
・transformImage() -- 画像を斜めに描画する処理
・animateTransform() -- アニメーション描画を開始する処理
です。
画像は左右の両側から重なるイメージなので、重なり幅が20とすると、実際の
画像幅は倍の40必要となりますので、画像の幅として*2をしています。
measuredWidth = overrlapWidth*2;
しかし残念ながら、このままでは選択画像より右側の並びが変になってしまい
ます。なぜなら画像は左から右へ、定義順に描画されるので、右側の画像の方
が上に重なってしまうのです。ではどうしたらいいでしょうか?

● 要素のZ順序を入れ替える
Window操作のプログラミングをした経験のある人なら、この状況を標記のとお
り解決できる、と推測するでしょう。そしてもちろんFlexでもswapChildrenと
いう関数が同様の機能を持っています。
そこでmxmlのonCreationComplete()を変更して、要素のZ順を変更してみます。
しかし結果は、大きく表示する順番が変になってしまいます。
なぜこうなるのでしょうか?

● Flexはオープンソースだから、ソースを読めばいいじゃないか
Flexの各クラスはcoreでない限りソースが提供されています。
そこで、h_frameのクラスであるHBOXの描画について調べてみましょう。
frameworks/source/mx/containers/HBox.asにはほとんど処理はないので、親ク
ラスであるBoxのコードを参照します。 

override protected function updateDisplayList(unscaledWidth:Number,
                                       unscaledHeight:Number):void
{
    super.updateDisplayList(unscaledWidth, unscaledHeight);

    layoutObject.updateDisplayList(unscaledWidth, unscaledHeight);
}

描画のコードはこのようになっていて、実際の描画はどうもlayoutObjectがや
っているようです。
さらにmx.containers.utilityClasses.BoxLayoutのupdateDisplayListでは、

for (i = 0; i < n; i++)
{
    obj = IUIComponent(target.getChildAt(i));
    ......

のように、getChildAtを使って子要素の順番(=Z順)に表示位置の計算をして
います。つまりHBoxに定義された順番とZ順を別々に管理することができれば
問題は解決しそうです。

● Repeaterを使うHBox、RepeaterHBoxを作る
つまりこういうことです。HBox内に要素を並べるとき、通常は要素の並びを持
っている訳ではありませんが、HBox内でRepeaterを使っているなら、要素の順
番はRepeater自信が保持しています。
RepeaterHBoxはHBoxを継承して定義します。本来の目的は上記で問題となって
いた、BoxLayoutを変更することです。ここでは独自のレイアウト処理CoverFlowLayout
を使ってみます。CoverFlowLayoutはBoxLayoutのソースコードを丸ごとコピー
してきて、
obj = IUIComponent(target.getChildAt(i));
の部分を
obj = IUIComponent(target.repeaterArray[i]);
のように、変更します。
つまりリピーターの定義(target.repeaterArray)順に要素の表示位置(レイ
アウト)を計算すれば問題は解決します。
こうすると、単純に左から右に描画するのでなく、重なりの下になっている画
像から描画しても、描画位置は定義順になるので期待通りの表示となります。

● 詳しくはBlogで
これまでの記事を含め、下記Blogで補足しています。
http://my.opera.com/sizuhiko/blog/index.dml/tag/CoverFlow
本記事について、引き続きこちらで詳しく解説&Flashのデモ&ソースコードの
ダウンロードも実施していますので、ぜひご覧ください。

● まとめ
このように画像を重ね合わせると、iPhoneやiPod、iTunesで見たカバーフロー
の表示により近いものとなったでしょう。
さていよいよ次回は、このシリーズの最終回。
amazonからタイトル、著者を取り出して表示する機能を実装してみます。
ご期待ください。(きしだ)

[*1] これまでのメルマガアーカイヴ
  第1回: http://www.ObjectClub.jp/ml-arch/magazine/209.html
  第2回: http://www.ObjectClub.jp/ml-arch/magazine/214.html
  第3回: http://www.ObjectClub.jp/ml-arch/magazine/228.html
  第4回: http://www.ObjectClub.jp/ml-arch/magazine/232.html
  第5回: http://www.ObjectClub.jp/ml-arch/magazine/238.html
  第6回: http://www.ObjectClub.jp/ml-arch/magazine/244.html
  第7回: http://www.ObjectClub.jp/ml-arch/magazine/251.html
  第8回: http://www.ObjectClub.jp/ml-arch/magazine/257.html
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E0012-9&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E0012-9&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E0012-9&choice=2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■━
■
┗【イベントレポート】「XP祭り2008」参加レポート [後編]

こんにちは。オブジェクト倶楽部のこんぴろです。
先日9月6日(土)に「XP祭り2008」が練馬公民館ホールで開催されました。
先週に引き続き、今回はオブジェクト倶楽部メンバーが活躍した講演・発表等
のレポートをお届けします。

● XP祭り2008での講演・発表
XP祭り2008では、Agile2008参加レポートとその再演、その他事例紹介としてデ
コブログの開発事例や、EM ZERO編集長の野口さんのセッションがありました。
また、XP祭り2008のテーマである「LT五輪」については、前回のメルマガにレ
ポートしました。よろしければご参照ください。

● Agile2008参加レポート
チェンジビジョンの平鍋、懸田、永和システムマネジメントの安井、木下の4名
が、Agile2008で講演してきたこと、Agile2008から得たことを発表しました。
発表者はそれぞれ、講演資料や感想をブログなどに上げているので、簡単にレ
ポートします。

平鍋からは、現在Agile UXという領域とKanbanが話題を集めはじめているとい
う話でした。Agile UXのUXとは、ユーザーエクスペリエンス(UserExperience)
の事です。ユーザーとともに対話することでシステムを作りあげるアジャイル
開発は、使い勝手やソフトウェアを使う上での体験をより良くする、ユーザー
エクスペリエンスを作り込むのに最適な、初めての開発手法だという、アラン
クーパー(Visual Basicの父)の話です。もう一つのKanbanについては、ぜひブ
ログ[*1]を読んでいただきたいと思います。

懸田からは、Agile2008に参加するまでをふりかえって、どういうタイムライン
で活動してきたかという話でした[*2]。Agile2008では400以上のセッションが
行われたそうですが、セッションをしたいという応募はゆうに4000を超えてい
たそうです。セッションに応募するにはどうしたらいいのか、そういった疑問
をもたれた方!ぜひ「Agile2009へ行こう![*3]」ミーティングにご参加くださ
い。

木下からは、Agile2008で発表をするために作った論文の苦労話や、Agile2008
で見たセッションの中でよかった、「FEARLESS CHANGE」等の紹介でした[*4]。
Agile2008で発表してからしばらくの間、無敵な気分になっていたそうで、そう
いう気分になりたい人はぜひ発表をということでした。

安井は、Agile2008での講演を再演しました。XP祭り2008で再演したセッション
は、日本のAgileコミュニティを海外のコミュニティへ紹介するセッションでし
た[*5]。日本のIT業界の産業構造や、タイムラインベースでアジャイル関連の
コミュニティがどう発展してきたかが、まとめられています。Agile2008では、
このセッションは、残念ながらそれほど多く海外の方が集まらなかったそうで
すが、私個人は東京のIT業界の集中っぷりなど、たくさん知らないことを知る
ことができて面白かったです。

● 事例発表
永和システムマネジメントの梶田[*6]、千葉[*7]が、アジャイル開発している
事例を発表しました。最初から「アジャイル開発を採用します」とお客様に宣
言するのではなく、お客様を巻き込んでふりかえりや計画をすることで、徐々
に開発をアジャイルな方向へシフトさせていった過程を生々しく発表しました。
開発者もお客様の前で見積をするため、正直ベースでしか言えません。お客様
からすれば、本当の見積、状況が分かるので、アジャイル開発の利点を理解し、
現在はお客様と開発者の垣根を越えて、一つのチームになっているという点が
非常に印象的でした。

● コミュニティドリブンのフリーペーパーEM ZEROの挑戦
Engineer Mindという雑誌をご存知でしょうか?残念ながら2008年3月に雑誌の
方は休刊になってしまったのですが、その編集を行っていたのが技術評論社の
野口隆史さんです。現在Engineer Mind自体はWebで連載が継続しています。で
すが、野口さんはどうしても紙媒体が好きで、では、自分で会社を作って、そ
こから刊行しようと言ってできたのがEM ZERO[*8]です。EM ZEROはフリーペー
パーのため、執筆料はZERO円。でも野口さんには雑誌版Engineer Mind時代で
得た野口メソッドがあります。それはコミュニティの懇親会で執筆を依頼する
ということ。いつもは野口さんから執筆を依頼することが多いのですが、何の
因果か講演を依頼されてしまい、逆にこうして人前に講演することになってし
まったということでした。
IT業界に近い位置ではありますが、書籍業界という異業種の話はなかなか聞く
ことがありません。そういう意味でも貴重な講演でした。
XP祭り2008ではEM ZERO第1号が配布されていました。ぜひ読みたいという方、
山手線田町駅にある、「鳥一代」[*9]というお店でも配布されているそうです
ので、ぜひ一度訪れてみてください。サムゲタンがとてもおいしいです。

XP祭り2008で発表されたスライドは、下記のリンク以外にもSlideShare[*10]に
上げられています。

今回のXP祭り2008では多くのオブジェクト倶楽部のメンバーが発表をしていま
した。これは元々XPJUGのメンバーが、オブジェクト倶楽部の引力に寄せられて
集まっていたということでした。コミュニティで知り合ったメンバーが、こう
して一つの場所に集まるのはすごいことですね。

一つの場所に集まれないとしても、たくさんの人と出会えるのがコミュニティ
活動のいいところ。最近はUSTREAM.TVを使って、内容を配信するコミュニティ
も増えていますが、講演やLTをした人を捕まえて話ができるのは実際に参加し
た人だけです。話をすることで得られる刺激は他のメディアでは置き換えるこ
とができません。ぜひ参加していろいろな刺激を受けてください。(こんぴろ)

[*1] http://blogs.itmedia.co.jp/hiranabe/2008/08/agile2008-1---e.html
[*2] http://www.slideshare.net/kkd/xp2008-agile20082-presentation/
[*3] http://mywiki.jp/goyattom/Agile2009/
[*4] http://fkino.net/20080906.html#p01
[*5] http://www.slideshare.net/yattom/agile-communities-in-japanj-presentation/
[*6] http://www.slideshare.net/hidenba/rubyxagile-presentation/
[*7] http://www.slideshare.net/kchiba/rubyxagile-presentation-587268/
[*8] http://www.manaslink.com/emzero.html
[*9] http://www.toho-e.net/
[*10] http://www.slideshare.net/tag/xp%E7%A5%AD%E3%82%8A2008
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=H003-50&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=H003-50&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=H003-50&choice=2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■ 
■
┗【アンケート】気になるシステム業界 ホントのところ

今週は「ライトニングトークス(LT)って知ってる?」のホントのところ。
こんぴろさんのイベントレポートにもあるとおり、今年のXP祭りは「LT五輪」
でした。その他、あちこちのイベントでLTが開催されています。今LTが熱い!
(いや以前からですけど!)ということで、みなさま、LTって知っていますか?
オブラブの今後のイベントでもLTを開催する予定ですので、知ってる方も知ら
ない方も、どうぞご期待ください♪

  知ってます!トークしたこともあります!
     http://www.ObjectClub.jp/special/kininaru/vote?vol=216&choice=0
  トークしたことはないけどいつかしてみたい!
     http://www.ObjectClub.jp/special/kininaru/vote?vol=216&choice=1
  トークする勇気はないけど見るのは大好きです。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=216&choice=2
  知ってるけど見たことはないです。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=216&choice=3
  ライトニングトークスって何?知らないです。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=216&choice=4
  それは秘密です。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=216&choice=5
  ちょっと語らせて!
     詳細をこのメールに返信ください!!

アンケート結果はオブジェクト倶楽部サイト上にて公開します。お楽しみに。
なお、前号「オブラブカレンダー使ってる?」の結果は公開中。ぜひご覧下さい。
⇒http://www.ObjectClub.jp/special/kininaru/vol215/PlonePopoll_results2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
■
┗編集後記

こんにちは、編集人のナガタユウコです。7月1日に開催したオブラブ2008夏イ
ベントから2ヶ月半。次回以降のイベント準備も着々と進んでいます。多忙なス
タッフにプレッシャーをかけるように、大きいスケジュール表を作成して、会
社の入口ドアに貼り出してみました。オブラブブログに写真を載せていますの
で、見てみてくださいね。→ http://d.hatena.ne.jp/objectclub/
次回のイベントについては、来週のメルマガでお知らせする予定です。どうぞ
お楽しみに♪

今週の強引な一言
*** 魚の目に水見えず人の目に空見えず(ことわざ) ***
水中の魚には水が見えず人は空気が見えない、それと同様にあまり近いものは
目に入らないこと。自分の職場にはあれがないこれがないと、無いものばかり
を嘆いていませんか?一度見つめ直してみると、慣れすぎて気付けなくなって
いた、いい面が見えてくるかもしれません。存在していて当然と捉えるのでは
なく感謝することで、職場や仕事が楽しくなればステキですよね♪
出典参考:故事ことわざ辞典 東京堂出版 (ナガタユウコ) 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
● ご意見、ご感想は         ⇒このメールに返信ください
〇 配信中止、アドレス変更は ⇒http://www.ObjectClub.jp/community/object_ml/help/
〇 免責事項、過去の記事は   ⇒http://www.ObjectClub.jp/community/object_ml/
■ 発行:オブジェクト倶楽部 ⇒http://www.ObjectClub.jp/
Copyright (c)2003-2008 オブジェクト倶楽部. All Rights Reserved.
powered by Eiwa System Management, Inc.