« mixi Alertが紹介されました | メイン | 他の手 »
2005年04月18日
吉里吉里2/KAG3ムービー拡張日誌:: セグメントループのデグレード
Tweet @jin1016をフォローセグメントループをキャンセルしたら、終端フレームで停止してしまうと言う不具合が報告された。
停止フレームを設定したら即座に反映されるわけではなく、次のシーク時に反映されるようだが、即座に反映されると思っていたせいで問題が発生した。
修正方法を考えて、すぐに思いつくのは…
1. 吉里吉里側で別にセグメントループ状態を管理するフラグなどを設け、ループ処理する時にセグメントループ状態を解除する。
2. 停止フレームの設定が即座に反映される方法を探す。
で、とりあえず即座に反映される方法を探してみるが、やはりシークを行わなければ反映されないようだ。
Pauseした後, Playしても反映はされなかった。
また、シークでいろいろとやっても無理だった。
現在の時間を得て、そこにシークすれば即座に反映されるが、若干ムービーがひきつる。
そもそも即座に反映されたとしても、終端フレーム付近でセグメントループがキャンセルされた場合、タイミングによっては今回と同じような問題が発生するな。
ただ、即座に反映されなければ、1回多くループすることになるので、即座に反映できるのならその方がいい。
でも、よく考えたら1.の方法でもタイミングの問題は発生し得る。
セグメントループをキャンセルして、次のループ終端の直前にセグメントループが設定され…って問題ないか。
でも、イベント処理とループキャンセル呼び出しが別スレッドの場合は、フラグ周りをクリティカルセクションで保護する必要がありそう。
投稿者 Takenori : 2005年04月18日 22:43
comments powered by Disqus