2021-09-29

本文介绍了在CocosCreator中如何监听和响应动画完成事件。通过`ani.on(cc.Animation.EventType.FINISH, callFunc, target)`可以全局监听动画结束,而通过在回调函数内判断动画名字可以针对特定动画执行操作。此外,还提到了帧事件的监听,强调了回调函数会在动画所在节点的所有脚本中触发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cocos creator Animation动画完成事件的监听

1、动画完成时的监听

let ani = node.getComponent(cc.Animation);   // 意思是,得到node上面的Animation组件
/*
*cc.Animation.EventType.FINISH:代表的监听事件类型,这只是动画完成的类型,还有其他类型灵活运用
*callFunc:这是回调函数
*target:目标一般用this
*/
ani.on(cc.Animation.EventType.FINISH, callFunc, target);

2、一个node下面不一定Animation组件不一定只有一个动画,如果要监听某个动画完成就不能用上面的监听事件了。

let ani = node.getComponent(cc.Animation);   // 意思是,得到node上面的Animation组件
ani.on(cc.Animation.EventType.FINISH, (type, animState) => {
	let name = animState.name;         // 得到此时已完成的动画的名字
	if(name == "target_appear"){       // 判断此时这个动画是不是你要监听的
		this.target();                 // 如果是就要执行你的函数
	}
}, this);

3、帧事件的监听:也就是animation动画里播放到某一帧执行的方法。
这是在cocos引擎官网上截的图
在这里插入图片描述
在这里插入图片描述

要注意的是:这里接收回调函数的脚本就是当前动画所在的节点添加了脚本,而且是该节点的所有脚本都能监听到该事件,都能回调这方法。

INSERT INTO `users` VALUES (1, '17598632598', '郭辉', '0a113ef6b61820daa5611c870ed8d5ee', '男', '2005-12-28 00:00:00', '长沙', '214896335@qq.com', 72, '2021-09-10 00:00:00'); INSERT INTO `users` VALUES (2, '14786593245', '蔡静', '202cb962ac59075b964b07152d234b70', '女', '1998-10-28 00:00:00', '深圳', '258269775@qq.com', 139, '2021-09-10 00:00:00'); INSERT INTO `users` VALUES (3, '18974521635', '段湘林', '202cb962ac59075b964b07152d234b70', '男', '2000-03-01 00:00:00', '长沙', '127582934@qq.com', 0, '2021-09-10 00:00:00'); INSERT INTO `users` VALUES (4, '13598742685', '盛伟刚', '202cb962ac59075b964b07152d234b70', '男', '1994-04-20 00:00:00', '北京', '24596325@qq.com', 58, '2021-09-10 00:00:00'); INSERT INTO `users` VALUES (5, '14752369842', '李小莉', '202cb962ac59075b964b07152d234b70', '女', '1989-09-03 00:00:00', '广州', NULL, 8, '2021-09-10 00:00:00'); INSERT INTO `users` VALUES (6, '16247536915', '罗湘萍', '202cb962ac59075b964b07152d234b70', '女', '1985-09-24 00:00:00', '长沙', '2157596@qq.com', 541, '2021-09-10 00:00:00'); INSERT INTO `users` VALUES (7, '18245739214', '柴宗文', '202cb962ac59075b964b07152d234b70', '男', '2000-02-19 00:00:00', '北京', '225489365@qq.com', 104, '2021-09-10 00:00:00'); INSERT INTO `users` VALUES (8, '17632954782', '冯玲珍', '202cb962ac59075b964b07152d234b70', '女', '1994-01-24 00:00:00', '广州', '', 349, '2021-09-10 00:00:00'); INSERT INTO `users` VALUES (9, '15874269513', '陈郭', '202cb962ac59075b964b07152d234b70', '女', '2001-07-02 00:00:00', '北京', '2159635874@qq.com', 65, '2021-09-10 00:00:00'); INSERT INTO `users` VALUES (10, '17654289375', '韩明', '202cb962ac59075b964b07152d234b70', '男', '2002-12-23 00:00:00', '长沙', '2459632@qq.com', 0, '2021-09-10 00:00:00'); INSERT INTO `users` VALUES (11, '19875236942', '罗松', '202cb962ac59075b964b07152d234b70', '女', '2002-09-12 00:00:00', '广州', '25578963@qq.com', 237, '2021-09-10 00:00:00'); INSERT INTO `users` VALUES (12, '17652149635', '李全', '202cb962ac59075b964b07152d234b70', '男', '2001-04-29 00:00:00', '长沙', '2225478@qq.com', 62, '2021-09-10 00:00:00'); SET FOREIGN_KEY_CHECKS = 1;
最新发布
05-14
### 插入多条记录的SQL语句功能与结构解析 #### 功能描述 通过 `INSERT INTO` 语句可以实现向数据库中的表插入新的记录。具体到 `users` 表,以下是几种常见形式及其功能: 1. **单条记录插入** 当仅需插入一条记录时,可以通过指定列名和对应的值完成操作。例如: ```sql INSERT INTO users(username, password, age) VALUES ('testUser', 'password123', 25); ``` 此处明确了三列:`username`, `password`, 和 `age` 的值分别为 `'testUser'`, `'password123'`, 及 `25`[^2]。 2. **批量插入多条记录** 如果需要一次性插入多条记录,则可以在同一语句中提供多个 `(value1, value2, ...)` 对象。这种写法减少了服务器开销,因为它只需对 SQL 进行一次分析和优化过程。例如: ```sql INSERT INTO users(name, age) VALUES ('Alice', 30), ('Bob', 24), ('Charlie', 29); ``` 上述语句会在 `users` 表中新增三条记录,每条分别对应不同的名字和年龄[^1]。 #### 数据结构解读 对于目标表 `users` 来说,其基本的数据结构应至少包含以下字段(基于已知信息推测): - `name`: 存储用户的姓名。 - `age`: 记录用户的年龄。 - 其他可能存在的字段如 `id`(主键),`created_at`(创建时间戳)等未显式提及但通常存在。 注意,在实际应用过程中,如果某些列为非空(`NOT NULL`)或者设置了默认值(default),那么在构建 `INSERT INTO` 语句的时候就需要特别关注这些约束条件[^2]。 ```sql -- 假设users表定义如下 CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), age INT NOT NULL ); ``` 此建表语句展示了最基本的两个用户属性——名称和年龄,并设定了一个自增型整数作为唯一标识符(id)[^2]。 ### 注意事项 尽管 MySQL 支持通过单一 `INSERT INTO` 指令处理大量数据输入,但在其他一些关系型数据库管理系统(RDBMS)里这样的做法未必可行;比如标准ANSI/ISO SQL并不支持直接连续列举多组值的方式来进行大批量录入工作[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值