【已解决】studio 2.2 lua 动画帧事件,求指教

local action = cc.CSLoader:createTimeline(“btn_click.csb”)
node:runAction(action)
action:gotoFrameAndPlay(0, 10, false)
self:addChild(node)

local function onFrameEvent(frame)
    cclog("***************")
    if nil == frame then
        return
    end

    local str = frame:getEvent()
    cclog("str:"..str)
    if str == "end" then
        frame:getNode():setColor(cc.c3b(0, 0, 0))
    end
end

action:setFrameEventCallFunc(onFrameEvent);

以上基本是官方的例子,动画正常播放,但无法正常进入帧事件!

cocos2dx 3.5 lua
cocostudio 2.2.1

studio工程截图

工程图,或者哪里有关于这个设置的教程给我一个 多谢

事件名字不是重点
关键是进不了这个方法

1.不要用中文
2.把帧事件弄到倒数第二帧试试

试了 还是不行 就是有没有完整的教程 我去看看 会不会有哪里没做对 我没找到

目前没有很好的教程,只有多看看test工程了,我也研究下去。

test工程都不行,test工程有这个代码,但是注释掉的

为啥我的可以呢?我觉得有几个问题你要弄清楚吧
(1)node:runAction(action) ----》这里的node和action(应该使用time_line这样的名字)需要是同一个csb文件生成的。
对应的是这两个方法cc.CSLoader:createNode(uiname),cc.CSLoader:createTimeline(uiname)
(2)我的调用流程是这样的,也许对你有用
local armature = cc.CSLoader:createNode(uiname)
local time_line = cc.CSLoader:createTimeline(uiname)
armature:runAction(time_line)
time_line:pause()
parentNode:addChild(armature)–添加动画节点显示
–调用
time_line:clearFrameEventCallFunc() – 先清除事件
time_line:gotoFrameAndPlay(0, loop)
– 先播放再设置事件callback,因为在gotoFrameAndPlay中会调用一次event
local eventFrameCall = function(eventFrame)
print(“called…”)
end
time_line:setFrameEventCallFunc(eventFrameCall)

我按照你的方法,回调没有响应额,我用的是3.5版本的

我自己2b了,源码看了半天,发现自己没有设置帧事件

勾选自动记录帧,再做动画,帧事件才有用;

最后一帧设置帧事件为啥没用啊,这是不是bug?

为啥 local eventFrameCall = function(eventFrame)
print(“called…”)
end
time_line:setFrameEventCallFunc(eventFrameCall) 不被调用啊

cocos2dx 3.4