191 lines
5.0 KiB
C#
191 lines
5.0 KiB
C#
|
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();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|