HydroSequence アップデート GoASAP r60 と動作チェック(1), HydroSequence, GoASAP r60 と動作チェック(2)、でわかったGoASAPのシーケンス処理時の dylay / resume バグに対処してみた。
対処療法だけど・・・
delay時に pause した時の SequenceCA.state が PlayStates.PLAYING になってることが原因っぽい。
SequenceCA.state が PlayStates.PAUSED になってないとダメなんだよなぁ。
SequenceStep.currentStep.state は PlayStates.PAUSED あるいはタイミングによっては PlayStates.STOPPED なので resume 実行条件にあってそう、これを使ってみるかな。
ソースをを変更しちゃうとアップデートの時に大変なんだよなぁ。
なんとか対処できるとイイナ。
import com.hydrotik.go.HydroSequence; import org.goasap.PlayStates; var sequence: HydroSequence = new HydroSequence(); // pause sequence.pause(); // resume if (!sequence.resume() && ( sequence.state == PlayStates. PLAYING && (sequence.currentStep.state == PlayStates.PAUSED || sequence.currentStep.state == PlayStates.STOPPED) ) ) sequence.start(); // stop sequence.stop(); |
いいのかなぁ〜、動いたからいいことにしておく。
*シーケンス登録最後のモーション時に pause したあとの resume バグは未解決。
sequence.pause();
してもシーケンスが残ってないことになるから処理が false になっちゃう。
SequenceCA.state は read only だから書き換えることもできないし・・・(続く)
update
sequence.state == PlayStates.PLAYING
を条件に加えた。