大阪てら子 21 「AS3教えて!えらい人」

teraco21

どうも、USKです。

さて、てらこに行ってきました。
てらこレポ書くのも久々な気もします。
(まぁ、まともに勉強してなかったし、、、)

---------------------------------------------------------------------
って、記事を帰ってすぐに書き始めてたんだけど、
そのあと放置してて、投稿するタイミングを逃していました。。。
なんで、今更感がかなりありますが、とりあえず公開だけしときます。
---------------------------------------------------------------------

今回は「AS3教えて!えらい人」ってわけで、
「AS3についての質問大会」でした。
(ATNDにみなさんから募集した質問が載っています

かく言う僕もAS3はまだまだほとんど触ったことなくて、全然わかってないので、今回の企画はほんと勉強になりました。
そんなわかってない人がわかってないなりに書いてきます!

以下、箇条書きで。

1.class内でparentとrootを多用しちゃわないような、うまい書き方のコツなどあれば教えてください。それがSingletonってやつのことですか?(byシナチク)

・やっぱりparentとかrootを多用しちゃうような書き方はよくない。
・考え方にMVCってのがある。簡単に書くと、
Model - アルゴリズムや計算部分
View - 表示に関する部分
Contoroller - それらを繋ぐもの
【参考】
Model View Controller - Wikipedia
trick7 - FlashとMVCパターン
コリン・ムック氏のたまごっちのサンプルがMVCの勉強にはいいんじゃない?
SSAW06 » Flash ActionScript2.0 実践講座3:Flash OOP詳細
AS3版は本が出ています。
詳説 ActionScript 3.0

2.classがdynamicってどういうこと?じゃあstaticって?(byシナチク)

ACTIONSCRIPT:
  1. //エラーなし
  2. public dynamic class teraco extends Sprite{
  3.     public function teraco(){
  4.         this.hoge = "hoge";
  5.     }
  6. }
  7. //エラーあり
  8. public class teraco extends Sprite{
  9.     public function teraco(){
  10.         this.hoge = "hoge";
  11.     }
  12. }

・型宣言なしでもエラーが出なくなる。なんでもあり?
・そのかわり間違ったものを代入してもエラーが出ないのでわかりにくい。
(AdobeMAXで野中さんも型宣言はしたほうが軽くなるよ!って言ってた)
・じゃあどういう時に使うの?
・例えばAS2だと、FuseKitで使うよ!

3.タイムラインにASは書く?クラスに書く?(by j.iida)

・クラスに書く派!
・じゃあ、スクリプトとタイムラインアニメーションだと?
・タイムラインアニメーションを使いたい時ってどうしてる?
・MC内にタイムラインアニメーションを作っておいて、それをリンケージしておくとか。

4.FlexとFlashの違いは?(by シナチク)

・結局同じのもなのでは。
・Flexにはmxmlがある。
・MVCで言えばViewの部分はmxmlで書いて、残りはASで書く。
・けど、mxmlも最終的にはASに変換されるから結局一緒。
・Flexって結局フレームワークだから。

5.AS書く時、何で書いてますか? ・(by j,iida)

・Winだと、FlashDevelop。MacだとFlex Builder、で決まり!?

休憩:パノラマ屋さん二宮さんの自己紹介タイム

AppBank二宮さんの記事を読んだばっかりだったので、ちょっとびっくりしました!
iPhoneアプリ(直接iTunesが開きます)もダウンロードしてました!

京都・日本・世界の最新パノラマムービー情報:QTVR Diary

なんと今回のてらこの模様を撮影もしてくれました!
写真もさっそく公開されてます。(全員目線入りで超あやしいですがw)

効率の良いデバッグの方法。(byシナチク)

サンダーボルト
・Flash、Flex標準のデバッガー
【参考】
【デバッグ強化週間】3分でできるデバッグ環境! ThunderBolt AirConsoleまとめ|_level0.KAYAC

・デバッグといえば、メモリ関連の管理で「Hi-ReS! Stats」使ってるよ。
・メモリ関連といえば、ビットマップでメモリの処理が軽くなる話があったけど、これってどういうこと?

ごみ漁り関係(ガベージコレクション関係)を教えてほしいっす。 ステキなクラス設計を。(by ギリギリツーリスト)

・そもそもガベージコレクションってなに?
ガベージコレクション - Wikipedia
・wikipediaの説明じゃわからん!
・びんたさんの説明がわかりやすい!
BeInteractive! [Spark project 勉強会 #06 ありがとうございました]
・System.gc(); で、強制的にガベージコレクションを発動してくれる。けど、これはデバッグプレーヤーでしか動かない。
(FP10からは通常のプレーヤーでも動くようになった??)
・基本、使ったものは片付ける。
- イベントをリッスンしてるものは消す
- addChildしてるやつは消す。
- 参照もってるやつはnullを入れて消す。
・これらを基本的に考えながら作ってやらないとメモリリーク(メモリが漏れてる)が発生しちゃう。


About this entry