You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.4 KiB
52 lines
1.4 KiB
using FairyGUI.Utils; |
|
|
|
namespace FairyGUI |
|
{ |
|
public class PlayTransitionAction : ControllerAction |
|
{ |
|
public string transitionName; |
|
public int playTimes; |
|
public float delay; |
|
public bool stopOnExit; |
|
|
|
private Transition _currentTransition; |
|
|
|
public PlayTransitionAction() |
|
{ |
|
playTimes = 1; |
|
delay = 0; |
|
} |
|
|
|
override protected void Enter(Controller controller) |
|
{ |
|
Transition trans = controller.parent.GetTransition(transitionName); |
|
if (trans != null) |
|
{ |
|
if (_currentTransition != null && _currentTransition.playing) |
|
trans.ChangePlayTimes(playTimes); |
|
else |
|
trans.Play(playTimes, delay, null); |
|
_currentTransition = trans; |
|
} |
|
} |
|
|
|
override protected void Leave(Controller controller) |
|
{ |
|
if (stopOnExit && _currentTransition != null) |
|
{ |
|
_currentTransition.Stop(); |
|
_currentTransition = null; |
|
} |
|
} |
|
|
|
override public void Setup(ByteBuffer buffer) |
|
{ |
|
base.Setup(buffer); |
|
|
|
transitionName = buffer.ReadS(); |
|
playTimes = buffer.ReadInt(); |
|
delay = buffer.ReadFloat(); |
|
stopOnExit = buffer.ReadBool(); |
|
} |
|
} |
|
}
|
|
|