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