AS3でボタンにイベントハンドラを設定したときにはまりました。
例
_next.addEventListener(MouseEvent.CLICK, n_clickHandler);
なんてclickHandlerというのをつけたのですが・・・(_nextはMovieClip)
このまま_next.enabled = false;
としたら「これでクリックできないだろな~」と思っていたらものの見事にクリックできました。
あれれ?と思って調べてみると上の書き方じゃだめ。
_next.removeEventListener(MouseEvent.CLICK, n_clickHandler);
ってちゃんとリスナーを外さないと。
はまったのでメモ。
progressionでEasyCastingモードで作成してると書き出しのときにエラーが出た。
”5005: バイトコードの最適化中に不明なエラーが発生しました。”
とのこと。何の事かと思ってみるとライブラリに1000アイテム以上もできていた。
EasyCasting.xmlをいじってキャストもシンボルを増やしすぎたのが原因みたいで500アイテムぐらいならなんとかできました。
でもこれって最初の設計段階でシンボルの使いまわしを考えなかった結果だね。
根性でやってるけど考えて作らないと。
ところで、progressionのキャストシンボルってフレームの最初に書き出すのチェックをはずすと怒られるんだけどそれでは表示が遅くなるしやっぱり画像データは先に読み込んだ方がスムーズに表示できるし…と思ってふと、
"preloader.fla"があるじゃんと思いました。
flashPlayerでpreloader.swfを立ち上げてみると次のindex.swfにつながる。
もしやと思いpreloader.flaのステージ外に500個ぐらいのシンボルをフレームでバラバラに配置(1フレーム辺りの読み込みを軽くするため)してみてパブリッシュすると。
おぉ、後の展開がスムーズだ。一度読み込むとキャッシュに残るからかな?
未確認なので間違っていたらごめんなさい。
体感ではそう感じました。
progresssionを使いはじめてごちょごちょやってます。
なんとか根性で一応のものを作成しましたが、これがまた力技。
easycasting.xmlをエクセルで加工して500個ぐらいのキャストを作成してそこから各ページを作るというスマートとはかけ離れたものでした。
やってみたかった、使ってみたかったから始まり、やってみたけど実感として「クラスベースを扱えるようになったらきっと強力になると思う」でした。
今回は僕の勉強不足によって無理くりやったけど次はもっといいものを創りたいです。
どうやら僕の創りたいものはEasyCastingでは出来ないみたい。
firefoxでもなぜか見え方おかしい。
もちろんおかしいのは僕の書き方なんですが。
とりあえずヤバイとおもったら2.0で作るか。
それまではprogressionでやるぞ。
ひとまずクラスベースで作りなおしてみよう