忍者ブログ

painkiller_blog

仕事でwebのお仕事。プライベートで油絵描いてます。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ボタンの続き

AS3でボタンを無効にするように前回のエントリで書いたんですけどもう少し詳しく。

ある変数、例えばnowNumが0のときはボタンは効かない。とするとどこのイベントでremoveEventListenerするのか?と考えたとき、”ボタンをクリックしたとき”というイベントハンドラ内でやるのかなと思っていたけど次にaddEventListenerするタイミングがよくわからん。

で、考えたのが常に変数nowNumを監視する関数をつくればいいや!とおもったのでやってみました。


PR

AS3でボタンのenable

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でやるぞ。

ひとまずクラスベースで作りなおしてみよう

Copyright © painkiller_blog : All rights reserved

TemplateDesign by KARMA7

忍者ブログ [PR]

管理人限定

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

最新CM

[10/08 イズカワタカノブ]

最新TB

ブログ内検索

アクセス解析

ブログを評価する「ブログレーダー」