イナヅマTVログ

HydroSequence GoASAP r60, delay中のresumeバグの処方箋

| 0件のコメント

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 を条件に加えた。

コメントを残す

必須欄は * がついています