private static showNodeCore(
node: cc.Node,
model: 'opacity' | 'scale',
show: boolean,
time = 0.3
): Promise<void> {
return new Promise((resolve) => {
if (model === 'opacity') {
if (show) {
node.active = true;
node.opacity = 0;
cc.tween(node)
.to(time, { opacity: 255 })
.call(() => {
resolve();
})
.start();
} else {
node.opacity = 255;
cc.tween(node)
.to(time, { opacity: 0 })
.call(() => {
node.active = false;
resolve();
})
.start();
}
} else if (model === 'scale') {
if (show) {
node.active = true;
node.scale = 0;
cc.tween(node)
.to(time, { scale: 1 })
.call(() => {
resolve();
})
.start();
} else {
node.scale = 1;
cc.tween(node)
.to(time, { scale: 0 })
.call(() => {
node.active = false;
resolve();
})
.start();
}
}
});
}
static async showNode(
node: cc.Node,
models: Array<'opacity' | 'scale'>,
show: boolean,
time = 0.3
): Promise<void> {
const promiseArray: Array<Promise<void>> = [];
models.forEach((model) => {
promiseArray.push(this.showNodeCore(node, model, show, time));
});
await Promise.all(promiseArray);
}
11-22
758
09-12
08-19