动画编辑器里面最后一帧添加事件,很经常监听不到,好心人帮忙一下,有没有解决方法?
我们也遇到了这个问题,后来发现这是编辑器的bug,具体修复看下面python代码,直接检查json文件
def fix_last_frame_add(hero_path):
if not hero_path.endswith(’/’):
hero_path += ‘/’
list_hero = os.listdir(hero_path)
for hero in list_hero:
json_path = hero_path
json_path += hero
json_path += ‘/Json/’
json_path += hero
json_path += ‘.json’
if not os.path.exists(json_path):
continue
handle_json = open(json_path)
obj_json = json.load(handle_json)
handle_json.close()
flag_change = 0
for lam in obj_json’animation_data’]:
for lmv in lam’mov_data’]:
frame_index = 0
for lmb in lmv’mov_bone_data’]:
num_bone = len(lmb’frame_data’])
if frame_index <= lmb’frame_data’]‘fi’]:
frame_index = lmb’frame_data’]‘fi’]
for lmb in lmv’mov_bone_data’]:
num_bone = len(lmb’frame_data’])
if frame_index <= lmb’frame_data’]‘fi’]:
m = lmb’frame_data’]-1]
n = lmb’frame_data’]-2]
# if m’fi’] == n’fi’] + 1:
# lmb’frame_data’] = lmb’frame_data’]:-1]
# flag_change += 1
# print ‘delete last frame …’
if lmv’dr’] != m’fi’] + 1:
lmv’dr’] = m’fi’] + 1
flag_change += 1
print “已修正 dr 导致的最后一帧问题”, hero, lmv’name’], lmb’name’], ‘dr =’, lmv’dr’]
if flag_change > 0:
data_json = json.dumps(obj_json, indent=2, sort_keys=True)
handle_json = open(json_path, ‘w’)
handle_json.write(data_json)
handle_json.close()
if flag_change <= 0:
print “\n\tdr 正常,(解决由索引值导致的最后一帧无法播放的bug)”
工具还处在成熟阶段,坑比较多,大家一起使用一起填坑,和cocos一起成长吧,感谢触控!!!
你很热心阿 每个这个问题的帖子都回复
自己遇到了问题,编辑器又没代码,查了好久才找到,看到很多兄弟也在纠结这个问题,就赶紧分享出来了。