[LUA-print] ----------------------------------------
Warning: cc.Node:runAction argument 2 is invalid native object(nullptr)
[LUA-print] ----------------------------------------
[LUA-print] LUA ERROR: ASSERT FAILED ON LUA EXECUTE: Argument must be no
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-27 20:09:34 |
👁️ 阅读: 4
这个错误是因为你给 `GUI:runAction()` 函数传递了一个无效的(nil 或 null)动作对象。
**错误分析:**
1. 错误信息 `"argument 2 is invalid native object(nullptr)"` 表示 `runAction` 的第二个参数是空值
2. `"Argument must be non-nil"` 再次确认参数不能为 nil
**常见原因:**
- 创建的动作对象为 nil(比如创建动作的函数调用失败)
- 动作对象在创建后被意外释放
- 动作序列中的某个动作是 nil
**解决方案:**
```lua
-- 1. 检查动作对象是否创建成功
local action = GUI:ActionMoveTo(0.5, 100, 100)
if action == nil then
SL:print("动作创建失败!")
return
end
-- 2. 检查节点是否有效
if GUI:Win_IsNull(widget) then
SL:print("节点无效!")
return
end
-- 3. 运行动作前确保所有参数有效
GUI:runAction(widget, action)
-- 4. 对于动作序列,检查每个动作
local action1 = GUI:ActionMoveTo(0.5, 100, 100)
local action2 = GUI:ActionFadeTo(0.5, 128) -- 注意:这是自定义函数,知识库中应为GUI:ActionFadeTo(time, opacity)
local action3 = GUI:CallFunc(function()
SL:print("动作完成")
end)
-- 确保每个动作都不为 nil
if action1 and action2 and action3 then
local sequence = GUI:ActionSequence(action1, action2, action3)
GUI:runAction(widget, sequence)
else
SL:print("有动作创建失败!")
end
```
**针对你的错误:**
查看第106行的 `callback` 函数,检查:
1. 传递给 `runAction` 的动作对象是否正确创建
2. 节点 `widget` 是否有效(使用 `GUI:Win_IsNull(widget)` 检查)
3. 动作序列中的每个动作是否都创建成功
如果还有问题,把第106行附近的代码发出来,浮生梦老师帮你看看具体哪里出错了!
这个错误是因为你给 `GUI:runAction()` 函数传递了一个无效的(nil 或 null)动作对象。
**错误分析:**
1. 错误信息 `"argument 2 is invalid native object(nullptr)"` 表示 `runAction` 的第二个参数是空值
2. `"Argument must be non-nil"` 再次确认参数不能为 nil
**常见原因:**
- 创建的动作对象为 nil(比如创建动作的函数调用失败)
- 动作对象在创建后被意外释放
- 动作序列中的某个动作是 nil
**解决方案:**
```lua
-- 1. 检查动作对象是否创建成功
local action = GUI:ActionMoveTo(0.5, 100, 100)
if action == nil then
SL:print("动作创建失败!")
return
end
-- 2. 检查节点是否有效
if GUI:Win_IsNull(widget) then
SL:print("节点无效!")
return
end
-- 3. 运行动作前确保所有参数有效
GUI:runAction(widget, action)
-- 4. 对于动作序列,检查每个动作
local action1 = GUI:ActionMoveTo(0.5, 100, 100)
local action2 = GUI:ActionFadeTo(0.5, 128) -- 注意:这是自定义函数,知识库中应为GUI:ActionFadeTo(time, opacity)
local action3 = GUI:CallFunc(function()
SL:print("动作完成")
end)
-- 确保每个动作都不为 nil
if action1 and action2 and action3 then
local sequence = GUI:ActionSequence(action1, action2, action3)
GUI:runAction(widget, sequence)
else
SL:print("有动作创建失败!")
end
```
**针对你的错误:**
查看第106行的 `callback` 函数,检查:
1. 传递给 `runAction` 的动作对象是否正确创建
2. 节点 `widget` 是否有效(使用 `GUI:Win_IsNull(widget)` 检查)
3. 动作序列中的每个动作是否都创建成功
如果还有问题,把第106行附近的代码发出来,浮生梦老师帮你看看具体哪里出错了!
← 返回问答库