cocos js 怎样在 runAction(cc.sequence(a1, a2)); 后执行一个回调函数?

答案,在 runAction(cc.sequence(a1, a2));

后再添加一个 action a3:

var a3=cc.callFunc(function () {ks.setEnabled(1)});
   b1.runAction(cc.sequence(a1, a2,a3));

 

 

这里需要说明,在 cocos js 3.61 中,cc.callFunc 是简介继承于 cc.Action,所以可以这吗用。

Cocos引擎中,`cc.Component`是一个基础组件系统,用于封装游戏对象的行为和属性。如果你在一个自定义的类中并未直接继承`cc.Component`,那么默认它不会自动获得事件处理能力,特别是来自`cc.sysEvent`这类高级系统级别的事件。 要在非`Component`类中使用`cc.sysEvent`,你需要手动添加事件监听器或者将事件处理函数绑定到该类的实例上。例如,你可以创建一个全局的事件管理器,然后在需要的地方调用其注册和触发方法: ```cpp class MyClass { public: void registerEventListener() { // 注册事件处理器 cocos::EventDispatcher* dispatcher = cocos2d::Director::getInstance()->getEventDispatcher(); dispatcher->addEventListenerWithSceneGraphPriority(this, "your_event_name"); } bool onTouchesBegan(cocos2d::Ref *touch, cocos2d::Event *event) { // 处理触摸事件,这是一个示例 return true; } static EventListenerCustom* createEventListener() { auto listener = new (std::nothrow) EventListenerCustom(); listener->setEventName("your_event_name"); listener->setCallbackFunction(MyClass::createTouchEventHandler); listener->retain(); return listener; } private: static std::function<void(Event*)> createTouchEventHandler(Event* event) { auto myObject = dynamic_cast<MyClass*>(event->getTarget()); if (myObject) { myObject->onTouchesBegan(nullptr, event); } } }; // 使用示例 MyClass instance; instance.registerEventListener(); // 注册事件 ``` 请注意,在Cocos中,`cc.Component`通常更适合对游戏对象进行统一管理和响应系统级事件,而非自定义类。如果只需要临时处理某些事件,上述方式是可以的,但如果涉及到更复杂的生命周期管理,还是建议考虑继承`cc.Component`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值