|
@@ -7,9 +7,12 @@ const { ccclass, property, executeInEditMode, playOnFocus } = cc._decorator;
|
|
|
*/
|
|
*/
|
|
|
@ccclass("PropsData")
|
|
@ccclass("PropsData")
|
|
|
export class PropsData {
|
|
export class PropsData {
|
|
|
- @property({ displayName: "坐标" }) public position: cc.Vec2 = cc.Vec2.ZERO;
|
|
|
|
|
- @property({ displayName: "旋转" }) public angle: number = 0;
|
|
|
|
|
- @property({ displayName: "缩放" }) public scale: number = 1;
|
|
|
|
|
|
|
+ @property({ displayName: "坐标" })
|
|
|
|
|
+ public position: cc.Vec2 = cc.Vec2.ZERO;
|
|
|
|
|
+ @property({ displayName: "旋转" })
|
|
|
|
|
+ public angle: number = 0;
|
|
|
|
|
+ @property({ displayName: "缩放" })
|
|
|
|
|
+ public scale: number = 1;
|
|
|
}
|
|
}
|
|
|
/**
|
|
/**
|
|
|
* 缓动数据
|
|
* 缓动数据
|
|
@@ -17,13 +20,20 @@ export class PropsData {
|
|
|
*/
|
|
*/
|
|
|
@ccclass("TweenData")
|
|
@ccclass("TweenData")
|
|
|
export class TweenData {
|
|
export class TweenData {
|
|
|
- @property({ displayName: "属性数据", type: PropsData }) public propsData: PropsData = new PropsData();
|
|
|
|
|
- @property({ displayName: "持续时间", tooltip: '单位:秒' }) public duration: number = 0.3;
|
|
|
|
|
- @property({ displayName: "延迟时间", tooltip: '单位:秒' }) public delay: number = 0;
|
|
|
|
|
- @property({ displayName: "是否为差值" }) public isOffset: boolean = false;
|
|
|
|
|
- @property({ displayName: '完成回调', tooltip: "缓动完成时触发", type: cc.Component.EventHandler }) public onComplete: cc.Component.EventHandler = new cc.Component.EventHandler();
|
|
|
|
|
- @property({ displayName: '开始回调', tooltip: "缓动启动时触发", type: cc.Component.EventHandler }) public onStart: cc.Component.EventHandler = new cc.Component.EventHandler();
|
|
|
|
|
- @property({ displayName: '过程回调', tooltip: "缓动更新时触发", type: cc.Component.EventHandler }) public onUpdate: cc.Component.EventHandler = new cc.Component.EventHandler();
|
|
|
|
|
|
|
+ @property({ displayName: "属性数据", type: PropsData })
|
|
|
|
|
+ public propsData: PropsData = new PropsData();
|
|
|
|
|
+ @property({ displayName: "持续时间", tooltip: '单位:秒' })
|
|
|
|
|
+ public duration: number = 0.3;
|
|
|
|
|
+ @property({ displayName: "延迟时间", tooltip: '单位:秒' })
|
|
|
|
|
+ public delay: number = 0;
|
|
|
|
|
+ @property({ displayName: "是否为差值" })
|
|
|
|
|
+ public isOffset: boolean = false;
|
|
|
|
|
+ @property({ displayName: '完成回调', tooltip: "缓动完成时触发", type: cc.Component.EventHandler })
|
|
|
|
|
+ public onComplete: cc.Component.EventHandler = new cc.Component.EventHandler();
|
|
|
|
|
+ @property({ displayName: '开始回调', tooltip: "缓动启动时触发", type: cc.Component.EventHandler })
|
|
|
|
|
+ public onStart: cc.Component.EventHandler = new cc.Component.EventHandler();
|
|
|
|
|
+ @property({ displayName: '过程回调', tooltip: "缓动更新时触发", type: cc.Component.EventHandler })
|
|
|
|
|
+ public onUpdate: cc.Component.EventHandler = new cc.Component.EventHandler();
|
|
|
}
|
|
}
|
|
|
/**
|
|
/**
|
|
|
* 缓动组件,目前只支持节点的三个基础属性
|
|
* 缓动组件,目前只支持节点的三个基础属性
|
|
@@ -33,13 +43,20 @@ export class TweenData {
|
|
|
@executeInEditMode()
|
|
@executeInEditMode()
|
|
|
@playOnFocus()
|
|
@playOnFocus()
|
|
|
export class UITween extends cc.Component {
|
|
export class UITween extends cc.Component {
|
|
|
- @property({ displayName: "节点初始属性", type: PropsData }) public fromData: PropsData = new PropsData();
|
|
|
|
|
- @property({ displayName: "节点目标属性", type: TweenData }) public targetData: TweenData[] = [];
|
|
|
|
|
- @property({ displayName: '缓动节点', tooltip: "要播放缓动动画的目标,不填则是当前节点", type: cc.Node }) public target: cc.Node = null;
|
|
|
|
|
- @property({ displayName: "缓动效果", type: cc.Enum(TweenEasing) }) public tweenEasing: TweenEasing = TweenEasing.linear;
|
|
|
|
|
- @property({ displayName: '执行次数', tooltip: "为0则一直重复执行" }) public repeat: number = 1;
|
|
|
|
|
- @property({ displayName: "单次完成回调", tooltip: '单次缓动序列执行完毕时触发', type: cc.Component.EventHandler }) public onOneRepeatComplete: cc.Component.EventHandler = new cc.Component.EventHandler();
|
|
|
|
|
- @property({ displayName: "自动播放" }) public playOnLoad: boolean = false;
|
|
|
|
|
|
|
+ @property({ displayName: "节点初始属性", type: PropsData })
|
|
|
|
|
+ public fromData: PropsData = new PropsData();
|
|
|
|
|
+ @property({ displayName: "节点目标属性", type: TweenData })
|
|
|
|
|
+ public targetData: TweenData[] = [];
|
|
|
|
|
+ @property({ displayName: '缓动节点', tooltip: "要播放缓动动画的目标,不填则是当前节点", type: cc.Node })
|
|
|
|
|
+ public target: cc.Node = null;
|
|
|
|
|
+ @property({ displayName: "缓动效果", type: cc.Enum(TweenEasing) })
|
|
|
|
|
+ public tweenEasing: TweenEasing = TweenEasing.linear;
|
|
|
|
|
+ @property({ displayName: '执行次数', tooltip: "为0则一直重复执行" })
|
|
|
|
|
+ public repeat: number = 1;
|
|
|
|
|
+ @property({ displayName: "单次完成回调", tooltip: '单次缓动序列执行完毕时触发', type: cc.Component.EventHandler })
|
|
|
|
|
+ public onOneRepeatComplete: cc.Component.EventHandler = new cc.Component.EventHandler();
|
|
|
|
|
+ @property({ displayName: "自动播放" })
|
|
|
|
|
+ public playOnLoad: boolean = false;
|
|
|
|
|
|
|
|
private _edit_play: boolean = false;
|
|
private _edit_play: boolean = false;
|
|
|
@property({ displayName: "编辑器预览" })
|
|
@property({ displayName: "编辑器预览" })
|