You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
190 lines
5.0 KiB
190 lines
5.0 KiB
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(); |
|
} |
|
} |
|
}
|
|
|