需求:
全局变量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的数组并遍历. 尽请期待.~!