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