觉醒时刻
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.

62 lines
1.4 KiB

1 week ago
const { ccclass, property } = cc._decorator;
//定义
export enum Direction {
UP = 1,
Down = 2,
Left = 3,
Right = 4,
};
@ccclass
export default class PopUp extends cc.Component {
@property({ type: cc.Enum(Direction) })
direction = Direction.Down;
@property
duration = 0.5;
@property
delay = 0;
protected orgX = 0;
protected orgY = 0;
onEnable() {
let widget = this.node.getComponent(cc.Widget);
if (widget) {
widget.updateAlignment();
widget.enabled = false;
}
this.popIn();
}
public popIn() {
this.orgX = this.node.x;
this.orgY = this.node.y;
if (this.direction == Direction.UP) {
this.node.y = cc.winSize.height;
} else if (this.direction == Direction.Down) {
this.node.y = -cc.winSize.height;
} else if (this.direction == Direction.Left) {
this.node.x = -cc.winSize.width;
} else {
this.node.x = cc.winSize.width;
}
cc.tween(this.node)
.delay(this.delay)
.to(this.duration, { x: this.orgX, y: this.orgY }, { easing: "backOut" })
.call(() => {
let widget = this.node.getComponent(cc.Widget);
if (widget) {
widget.enabled = true;
widget.updateAlignment();
}
})
.start();
}
}