|  |  |  |  | using UnityEngine; | 
					
						
							|  |  |  |  | using FairyGUI.Utils; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace FairyGUI | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     /// <summary> | 
					
						
							|  |  |  |  |     /// GMovieClip class. | 
					
						
							|  |  |  |  |     /// </summary> | 
					
						
							|  |  |  |  |     public class GMovieClip : GObject, IAnimationGear, IColorGear | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         MovieClip _content; | 
					
						
							|  |  |  |  |         EventListener _onPlayEnd; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public GMovieClip() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         override protected void CreateDisplayObject() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             _content = new MovieClip(); | 
					
						
							|  |  |  |  |             _content.gOwner = this; | 
					
						
							|  |  |  |  |             _content.ignoreEngineTimeScale = true; | 
					
						
							|  |  |  |  |             displayObject = _content; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public EventListener onPlayEnd | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get { return _onPlayEnd ?? (_onPlayEnd = new EventListener(this, "onPlayEnd")); } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public bool playing | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get { return _content.playing; } | 
					
						
							|  |  |  |  |             set | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 _content.playing = value; | 
					
						
							|  |  |  |  |                 UpdateGear(5); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public int frame | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get { return _content.frame; } | 
					
						
							|  |  |  |  |             set | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 _content.frame = value; | 
					
						
							|  |  |  |  |                 UpdateGear(5); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public Color color | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get { return _content.color; } | 
					
						
							|  |  |  |  |             set | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 _content.color = value; | 
					
						
							|  |  |  |  |                 UpdateGear(4); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public FlipType flip | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get { return _content.graphics.flip; } | 
					
						
							|  |  |  |  |             set { _content.graphics.flip = value; } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public Material material | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get { return _content.material; } | 
					
						
							|  |  |  |  |             set { _content.material = value; } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public string shader | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get { return _content.shader; } | 
					
						
							|  |  |  |  |             set { _content.shader = value; } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public float timeScale | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get { return _content.timeScale; } | 
					
						
							|  |  |  |  |             set { _content.timeScale = value; } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public bool ignoreEngineTimeScale | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get { return _content.ignoreEngineTimeScale; } | 
					
						
							|  |  |  |  |             set { _content.ignoreEngineTimeScale = value; } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public void Rewind() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             _content.Rewind(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="anotherMc"></param> | 
					
						
							|  |  |  |  |         public void SyncStatus(GMovieClip anotherMc) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             _content.SyncStatus(anotherMc._content); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="time"></param> | 
					
						
							|  |  |  |  |         public void Advance(float time) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             _content.Advance(time); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// Play from the start to end, repeat times, set to endAt on complete. | 
					
						
							|  |  |  |  |         /// 从start帧开始,播放到end帧(-1表示结尾),重复times次(0表示无限循环),循环结束后,停止在endAt帧(-1表示参数end) | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="start">Start frame</param> | 
					
						
							|  |  |  |  |         /// <param name="end">End frame. -1 indicates the last frame.</param> | 
					
						
							|  |  |  |  |         /// <param name="times">Repeat times. 0 indicates infinite loop.</param> | 
					
						
							|  |  |  |  |         /// <param name="endAt">Stop frame. -1 indicates to equal to the end parameter.</param> | 
					
						
							|  |  |  |  |         public void SetPlaySettings(int start, int end, int times, int endAt) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             ((MovieClip)displayObject).SetPlaySettings(start, end, times, endAt); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         override public void ConstructFromResource() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             this.gameObjectName = packageItem.name; | 
					
						
							|  |  |  |  |              | 
					
						
							|  |  |  |  |             PackageItem contentItem = packageItem.getBranch(); | 
					
						
							|  |  |  |  |             sourceWidth = contentItem.width; | 
					
						
							|  |  |  |  |             sourceHeight = contentItem.height; | 
					
						
							|  |  |  |  |             initWidth = sourceWidth; | 
					
						
							|  |  |  |  |             initHeight = sourceHeight; | 
					
						
							|  |  |  |  |             contentItem = contentItem.getHighResolution(); | 
					
						
							|  |  |  |  |             contentItem.Load(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             _content.interval = contentItem.interval; | 
					
						
							|  |  |  |  |             _content.swing = contentItem.swing; | 
					
						
							|  |  |  |  |             _content.repeatDelay = contentItem.repeatDelay; | 
					
						
							|  |  |  |  |             _content.frames = contentItem.frames; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             SetSize(sourceWidth, sourceHeight); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         override public void Setup_BeforeAdd(ByteBuffer buffer, int beginPos) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             base.Setup_BeforeAdd(buffer, beginPos); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             buffer.Seek(beginPos, 5); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             if (buffer.ReadBool()) | 
					
						
							|  |  |  |  |                 _content.color = buffer.ReadColor(); | 
					
						
							|  |  |  |  |             _content.graphics.flip = (FlipType)buffer.ReadByte(); | 
					
						
							|  |  |  |  |             _content.frame = buffer.ReadInt(); | 
					
						
							|  |  |  |  |             _content.playing = buffer.ReadBool(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } |