おいしいAS3 -42ページ目

filter()って・・・(続)

Arrayのfilter()のコールバックに
プール値の型指定したら
エラーになるって話したんですが



『もしかして期待されてる戻り値
sort()と同じでint型なんじゃね?』




検証はしてませんが多分そうでしょ

Arrayってsort()のオプションにしろ
数でなんかするのが好きみたいですし

nullのオブジェクト参照にアクセスできません

FlashCS3を触り始めたばかりの頃
特にオーサリングを中心にやっていると
ムービークリップ内に配置した
インスタンスを指定するとこんな
エラーメッセージに出くわすことがあった


ムービークリップ内の
途中のフレームから登場する
インスタンスはそのフレームが
再生されるまでアクセスできないから


・・・なのだが

確か以前のFlashではgotoAndStop()した後なら
アクセスできたはずなのだが、CS3はできない

そのフレームが再生され
ステージにインスタンスが追加された時点から
やっとアクセス可能になる

つまるところ、そのインスタンスの
ADDED_TO_STAGEを待てってことなんだけど
そもそもそのインスタンスにアクセスできなくて
こまってるわけだから
一回ENTER_FRAME待たないといけないってことになる
(gotoAndStop()した直後もENTER_FRAMEイベントあるので
実際は2回待つように書かなきゃいけないのだが)


AS3ではそういう風になったんだろうと思ってたんだけど違うらしい
これはFlashPlayer9の不具合、もしくは仕様らしく
AS3からそういう風に変えたというわけではないらしい

FlashPlayer10では改善されてるんだろうか?

filter()って・・・

filter()の引数になる判定用の
コールバックファンクション

何回やってもエラーになる

ちゃんと値も返してるし何が悪いのかと思ったら
戻り値の型を指定してるのがダメらしい

なんで?

理由はわからないけど覚えておこう


myArray.filter(filterFunc)


× function filterFunc(item):Boolean{return item>xx}
○ function filterFunc(item){return item>xx}