Cocos2d-x的SpiderMonkey的JavaScript与C++的交互(三) - 全局变量Obj的操作

需求:

全局变量Obj的操作.

这个是作为JS脚本来说非常有用处的一个地方.比如说.咱们想在JS脚本中存下窗口位置和大小.还有其他杂七杂八的东西.对游戏或者应用开发来说是在平常不过的需求了.本人也是想说..lua这个东东吧..越来越淡薄了..哎~ TS3选择lua真是个惨痛的代价..抓狂..还写了个IDE来调试他 哎~.看来我真是浪费功夫.浪费的太多了.这一节.璞哥给大家闹这个obj...大家别说这篇 篇幅小哦...是在没辙.就是很简单...懂JS的同学肯定都知道 js是个非常非常弱类型的语言..所有的东东都能Obj...啥都能Obj里面塞..不知道的同学可以看看本人blog里面关于Javascript数据结构的文章..估计就会豁然开朗了吧.呵呵.

JavaScript脚本里面可以这样写..然后咱们要去读取MM的值..这块就读下字符串..其他类型当然也可以读到了.如果有什么不明白的地方欢迎加我Q群.就在blog帖子置顶贴上面.

var obj = {};
obj.MM = "TimeShift Engine Awesome!"

然后cpp里面就可以这样读出MM的值..

        ScriptingCore* sc = ScriptingCore::getInstance();
        sc->runScript("CMAI/main.js");
        {
            JSObject* pObj = nullptr;
            jsval obj;
            JS_GetProperty(sc->getGlobalContext(),sc->getGlobalObject(),"obj", &obj);
            JS_ValueToObject(sc->getGlobalContext(),obj,&pObj);

            jsval mm;
            JS_GetProperty(sc->getGlobalContext(),pObj,"MM", &mm);
            JSString* pS = JS_ValueToString(sc->getGlobalContext(), mm);
            JSStringWrapper pW(pS);
            CCLog(pW.get().c_str());
        }

实际上代码很简单.就是说. 全局root的JSObject里面有个obj变量..然后获取obj变量之后呢.发现jsval里面是个JSObject..然后这个JSObject肯定里面就有MM了哦...然后就..各位同学你懂的..然后就转化出来字符串了..祝大家编码开心,加班愉快~~.

有的同学就说了..我去 璞哥..你Y是不是看 狂湿 片子看附身了...最近感觉也是.....哎~. 自从看到了 不狂大神的 亲笔签名照..鄙人感觉妥妥的受了很大的刺激..我去...这不是庾澄庆么...我了个无奈..啥都不说了.~果断了.dota去.

哦.下一张给大家介绍如何获取一个 JS的数组并遍历. 尽请期待.~!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值