查看: 2041|回复: 3

[有事请教] 播放动画的代码问题。动画播放到底啥时候才真正结束?

[复制链接]
梦石
0
星屑
848
在线时间
117 小时
注册时间
2018-4-7
回帖
93
发表于 2022-7-15 20:06:12 | 显示全部楼层 |阅读模式
悬赏70星屑未解决
本帖最后由 新耀012478 于 2022-7-15 23:59 编辑

自己试了一下,确实只有在动画完全播放完毕以后,该事件的._animationPlaying才会变为false(没有仔细查代码,只是从F12确定的)。
因为只有事件才能被播放动画的样子,我就使用了以前找到的一个事件复制插件。不过我想问题应该跟它无关。我的问题是想知道准确的判定条件。
因为动画播放是异步事件,这些临时的空事件是需要在播放完以后删除的。所以我就用了回调函数,我是进行的一个对地图上多个点进行动画的,所以我就按顺序如果数组里最后一个的播放变成false那么就resolve()。
但是实际上数组里本身就只有一个事件……
我以为false就意味着完成了,所以就用.then()执行清除临时事件的函数了,却没想到报错了……
我认为是判定条件的问题,变成false的时候只是不影响玩家游玩,但是实际上并没有真正结束,我对动画还没开始研究,所以想直接来论坛里问问

梦石
0
星屑
848
在线时间
117 小时
注册时间
2018-4-7
回帖
93
 楼主| 发表于 2022-7-15 23:12:25 | 显示全部楼层
找到问题了……明明if应该判定是false,可是却执行了后面的内容,我并没有使用任何等号,而是直接用感叹号判定的。
if(!$gameMap._events[3]._animationPlaying){resolve()}
我从头到尾一直在F12里面,也就是说现在还是true,事实上也确实是true,然而……
回复

使用道具 举报

梦石
0
星屑
848
在线时间
117 小时
注册时间
2018-4-7
回帖
93
 楼主| 发表于 2022-7-15 23:21:11 | 显示全部楼层
好吧,是我对then的理解有问题,之前搜到flu开头的是完成,pending是进行中,而then左边写得似乎是是否完成的意思,我就误会了……
回复

使用道具 举报

梦石
0
星屑
848
在线时间
117 小时
注册时间
2018-4-7
回帖
93
 楼主| 发表于 2022-7-15 23:57:22 | 显示全部楼层
最终还是选择加到了updateMain里,应该算回避了这个问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部