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

47 lines
971 B
C#

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