Files
unity-flash-tools/Assets/FlashTools/Scripts/FTRuntime/Yields/SwfWaitRewindPlaying.cs

47 lines
989 B
C#

using UnityEngine;
namespace FTRuntime.Yields {
public class SwfWaitRewindPlaying : CustomYieldInstruction {
SwfClipController _waitCtrl;
public SwfWaitRewindPlaying(SwfClipController ctrl) {
Subscribe(ctrl);
}
public SwfWaitRewindPlaying Reuse(SwfClipController ctrl) {
return Subscribe(ctrl);
}
public override bool keepWaiting {
get {
return _waitCtrl != null;
}
}
// ---------------------------------------------------------------------
//
// Internal
//
// ---------------------------------------------------------------------
SwfWaitRewindPlaying Subscribe(SwfClipController ctrl) {
Unsubscribe();
if ( ctrl ) {
_waitCtrl = ctrl;
ctrl.OnRewindPlayingEvent += OnRewindPlaying;
}
return this;
}
void Unsubscribe() {
if ( _waitCtrl != null ) {
_waitCtrl.OnRewindPlayingEvent -= OnRewindPlaying;
_waitCtrl = null;
}
}
void OnRewindPlaying(SwfClipController ctrl) {
Unsubscribe();
}
}
}