|  |  | 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();
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | }
 |