すがブロ

sugamasaoのhatenablogだよ

Smiley Hackathon#6に参加してきました

( ゚∀゚)彡ハッカソン!ハッカソン!

id:acotie さん主催の勉強会(でいいのかな)に参加してきました。

とりあえず

駅から徒歩一分の場所で豪快にまよった/(^o^)\たぶん、10分くらい浜町をさまよったと思われる。

成果物

モノ自体は大した作品ではないのだけど・・・。
AS3(Flex)において、どうやれば奇麗なクラス設計ができるか、及びMVC的に作成するにはどうしたら良いか、という事に注力してコーディングしてみた。
ちなみに、Flexといいつつも、FlexBuilder を使う程のブルジョアでは無いので、 vim で開発してます。

で、どんな設計になったの?

こんな感じ。wikiページに補足が書いてあるので、ご覧になってほしいです。

ディレクトリ階層としては

|-- simpleDraw
|   |-- controller
|   |   |-- controlPanelController.as
|   |   `-- simpleDrawController.as
|   |-- events
|   |   `-- ControlPanelEvent.as
|   |-- model
|   |   |-- ControlPanelModel.as
|   |   `-- SimpleDrawModel.as
|   `-- view
|       |-- controlPanelView.mxml
|       `-- simpleDrawView.mxml
`-- simpleDraw.mxml

な感じ。simpleDraw.mxml がエントリポイントになっていて、simpleDrawView.mxmlが実際のメインページとなっている。
できれば、ページ単位での扱いと各パーツ(メニューとか、そういう小さい単位)で別々に管理したいのだけど、イマイチうまい名前付けが思いつかなかった。
ページは View で、パーツは Component とかの名前付けで分割して行けば良かったかなぁ。
自分なりに MVC っぽくなるように苦心したのだけど、ここら辺はいろいろな人の意見が聞きたいです。あまりイベントドリブンなプログラムはしたことないので、自分の中でもノウハウが無くて苦労しています。

実際に作ったプログラムは

一応、作る上でのポイントは、Flash Player 10 から追加された、ローカルファイルの直接のダウンロードを実装している点ですね*1
これで、いちいちサーバを介さずに画像のDLができます。
あと、今回 Flash player 10 で追加された機能を使おうとしたところ、以下のようなエラーが発生してコンパイルできなかった。

col: 7 Error: 未定義である可能性のあるメソッド save を、静的型 flash.net:FileReference の参照を使用して呼び出しました。
fr.save(bytes, DEFAULT_NAME);

どうやら、flex-config.xml の「target-player」タグでのバージョンの指定が 9 系になっているのが原因らしい。ので、とりあえず 10.0.0 にしてみたのだけど、本当はグローバルな framework/flex-config.xml ではなく、個別のプロジェクト毎に設定ファイルを既述した方が良いのだろうと思う。が、どうやって書いていいのかよくわからなかったので、flex-config.xml を直接変える事にした*2

AS の話をもう少し

vim で開発する上でのリソース
開発をする上で助かるリソース
その他

よくわかっていないグローバルなオブジェクトについての解説が載っていた。なんやかんや言って、adobeのサイトが一番わかりやすい。あとは検索の時に前のバージョンが引っかかってこなければ良いのだけど。

懇親会

Smiley Hackathonの行きつけらしいイタリアンなお店でピザを食らう。というか、ぶっちゃけファミコンの話しかしてないwww
id:willnet さんと id:acotie さんと、あと junichiro さんで、多分2時間ちかくファミコン話をしていた(junichiroさんのよどみなく流れるファミコンネタに驚愕した)。
http://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%AF%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E3%83%88%E3%83%A0%E3%83%BB%E3%82%BD%E3%83%BC%E3%83%A4 とか懐かしすぎるだろwww

というわけで

初参加で、アウェイすぎて死んでしまうかと思われたけれどもそんな事は全然なく、普通に楽しめました。というか、黙々とコードを書くだけなのでとても静かで集中できて良かったです。
次回がいつかは明言されていなかったけれど、できれば、次回も参加したいです*4

最後に

みなさんお疲れさまでした!><

*1:先日、会社の先輩から追加されたと聞いた

*2:どうせ、個人で開発する上で 9 系縛りとかはないだろう

*3:これがあれば Flex Builder がなくったって・・・!

*4:個人的には月イチの開催でも全然アリだと思います