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