Quantcast
Channel: Cocos中文社区 - 最新主题
Viewing all articles
Browse latest Browse all 88737

C++导出自定义Node,如何传递数据到js?

$
0
0

@vkyii 写道:

目前能想到两种方式:

  1. 使用ScriptingCore::getInstance()->evalString(script);,局限是需要向某个全局的位置指定回调函数,比如:

    // 在js的某组件onLoad函数中
    _G.callback = this.onCallback.bind(this);
    // 在C++的需要回调的地方
    ScriptingCore::getInstance()->evalString("_G.callback(123)");

  2. 使用CustomEvent发送,在js端接收消息:

    // C++
    Director::getInstance()->getEventDispatcher()->dispatchCustomEvent("callback_from_cpp", "123");
    // js
    cc.game.on("callback_from_cpp", e => { cc.log(e); });
    dispatchCustomEvent的第二个参数是void*,我能想到传基本类型,像const char*,目测传结构体的话应该是在js端接收不到的吧.

在写问题的时候其实已经梳理了一遍思路,至少能达到传数据的目的了,但还是想弄得更清楚一些:
1. 使用CustomEvent时有办法可以传结构体或者数组吗?
2. 有没有更直观的方法,比如在js端直接传一个回调函数.(可能是我想多了)

感谢.

帖子: 5

参与者: 2

阅读整个主题


Viewing all articles
Browse latest Browse all 88737

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>