Adobe AIR / BusyIndicator

「BusyIndicator」を表示するようにプログラムを書いたのだが、実際に実機に入れてみると思ったタイミングでインジケーターが表示されないことが分かった。

ステートを切り替えることでインジケーターが表示されるようにしているのだが、ステートを切り替えた操作が重い処理の前に実行されていないのが原因*1ではないかと思われる。


ちなみに、PCでは処理が速すぎてわけが分からないので、flash.utils.setTimeoutを使ってわざと重い処理の開始を遅らせていたのだが、なぜかその場合にはすぐにインジケーターが表示されるように見える。待ち時間に入る時に表示を更新しようとするからだろうか?


表示の更新を要求するコマンドが単体でどこかにあるはずなのか…


それはともかく、setTimeoutを1000分の1秒に設定してみると、インジケーターは表示されるがマシンがbusyすぎてbusyインジケーターが回らないという面白い事態が。これも何か設定があるのか?というかアニメーションさせるのがそもそもよくないのか(笑)カスタムの「止め絵」を使おう。

*1:つまり、ステートを切り替える処理に重い処理が被さってしまう