« 裏テク探偵団でmixi Alertが紹介されました | メイン | ムービー途中保存でのオーディオ »

2005年05月24日

吉里吉里2/KAG3ムービー拡張日誌:: 解決セグメントループ

    

少し考えたら、簡単な方法で解決できそうなことに気づいた。
ムービーはダブルバッファリングされている。
吉里吉里のレイヤーはUpdateされるまで、描画されない。
つまり、以前トリプルバッファリングがどうとか書いたけど、そんなことをしなくても表示中のレイヤーへは描画されない。
だから、Updateをコールせずにフレーム移動をすれば、セグメントループが実現できる。
ただ、他の処理がUpdateをコールするタイミングによっては、セグメントループの終端フレームの次のフレームが描画されてしまう可能性はあるが、多分稀だろうから気にしないことにする。

終端フレームに関してなんかいろいろあった気がするけれど、次のようになった。
setSegmentLoopで指定するgoFrameは描画されない。
goFrameの一つ前のフレーム描画後、comeFrameへ移動する。
これは、現在の吉里吉里のドキュメント通り。

表示時間に関しても問題なくなっているはずだ。
停止フレームを設定した場合、そのフレームの次のフレームが描画されるタイミングでEC_COMPLETEイベントが発生し、そこでフレームの移動を行っていた。
今回、停止フレームを利用しない方法へ戻したが、描画が完了したタイミングでフレームを移動するのではなく、次のフレームの更新イベントを受け取った時にフレームを移動するようにした。
これによって、セグメントループの最終フレームは停止フレームを使用した場合とほぼ同じ表示時間になるはずだ。



投稿者 Takenori : 2005年05月24日 21:27




comments powered by Disqus
Total : Today : Yesterday : なかのひと