Cocos2d-x的SprideMonkey的JavaScript与C++的交互(二) - 单个全局变量操作
2013-08-18 11:19
435 查看
哇塞最近发现转帖的真多呀.这星期五写的东东..现在满大街都是了.哥哥也不问功名利禄.感觉挺好的.JS火起来我也很开心~呵呵. 当时快下班了.这篇写的有些仓促.现在加精一些.
首先来理解一下sc->getGlobalObject()...这个同学们就问了..你这个不科学...sc是个毛线呀...这块璞哥就说了.不能怪我呀.这要下班了.伤不起呀....璞哥一直说要随心而乐.嘛.是吧.一个礼拜就盼这个呢....好了不扯了.sc就是cocos2d-x给咱封装的那个单键..用过的同学.和看过源码的同学肯定知道cocos2d-x有很多的单键..什么导演呀.xxx是吧..ScriptingCore* sc = ScriptingCore::getInstance();
关于整个cocos2d-x的js核心类就是这个东东.ScriptingCore.通过这个可以获取到 Root JSObject和 JS上下文.这两个非常重要的东西.下面的实例就是说.在根节点下面取到 x这个变量.后面的东西也就非常好理解了.
一.JS全局变量的操作.
1.修改值.
该例子是说.js里面有个全局变量x.现在把x获取到c++中. 这块是个字符串.
[cpp] view
plaincopy
jsval x;
JS_GetProperty(sc->getGlobalContext(), sc->getGlobalObject(), "x", &x);
JSString* pS = JS_ValueToString(ScriptingCore::getInstance()->getGlobalContext(), x);
JSStringWrapper pW(pS);
CCLog(pW.get().c_str());
2.获取值.
改例子是说.js里面有个全局变量x.现在通过c++把值给设置成HelloWorld!
[cpp] view
plaincopy
jsval x = c_string_to_jsval(sc->getGlobalContext(), "HelloWorld!");
JS_SetProperty(sc->getGlobalContext(), sc->getGlobalObject(), "x", &x);
待续...复杂的Arry和Object.
首先来理解一下sc->getGlobalObject()...这个同学们就问了..你这个不科学...sc是个毛线呀...这块璞哥就说了.不能怪我呀.这要下班了.伤不起呀....璞哥一直说要随心而乐.嘛.是吧.一个礼拜就盼这个呢....好了不扯了.sc就是cocos2d-x给咱封装的那个单键..用过的同学.和看过源码的同学肯定知道cocos2d-x有很多的单键..什么导演呀.xxx是吧..ScriptingCore* sc = ScriptingCore::getInstance();
关于整个cocos2d-x的js核心类就是这个东东.ScriptingCore.通过这个可以获取到 Root JSObject和 JS上下文.这两个非常重要的东西.下面的实例就是说.在根节点下面取到 x这个变量.后面的东西也就非常好理解了.
一.JS全局变量的操作.
1.修改值.
该例子是说.js里面有个全局变量x.现在把x获取到c++中. 这块是个字符串.
[cpp] view
plaincopy
jsval x;
JS_GetProperty(sc->getGlobalContext(), sc->getGlobalObject(), "x", &x);
JSString* pS = JS_ValueToString(ScriptingCore::getInstance()->getGlobalContext(), x);
JSStringWrapper pW(pS);
CCLog(pW.get().c_str());
2.获取值.
改例子是说.js里面有个全局变量x.现在通过c++把值给设置成HelloWorld!
[cpp] view
plaincopy
jsval x = c_string_to_jsval(sc->getGlobalContext(), "HelloWorld!");
JS_SetProperty(sc->getGlobalContext(), sc->getGlobalObject(), "x", &x);
待续...复杂的Arry和Object.
相关文章推荐
- Cocos2d-x的SprideMonkey的JavaScript与C++的交互 - 单个全局变量操作
- 交互修改Cocos2d-x的SprideMonkey的JavaScript与C++的交互 - 单个全局变量操作
- Cocos2d-x的SpiderMonkey的JavaScript与C++的交互(二) - 单个全局变量操作
- Cocos2d-x的SprideMonkey的JavaScript与C++的交互(三) - 全局变量Obj的操作
- Cocos2d-x的SpiderMonkey的JavaScript与C++的交互(三) - 全局变量Obj的操作
- Cocos2d-x的SprideMonkey的JavaScript与C++的交互(一) - 函数操作
- Cocos2d-x的SpiderMonkey的JavaScript与C++的交互(一) - 函数操作
- Cocos2d-x的SprideMonkey的JavaScript与C++的交互
- Cocos2d-x的SprideMonkey的JavaScript与C++的交互
- Cocos2d-x的SprideMonkey的JavaScript与C++的交互(四) - 灰常好用的一个函数eval
- Javascript模块化编程(一)模块的写法最佳实践六、输入全局变量 独立性是模块的重要特点,模块内部最好不与程序的其他部分直接交互。 为了在模块内部调用全局变量,必须显式地将其他变量输入模块。
- c++多线程操作全局变量的锁的问题
- c++多线程操作全局变量的锁的问题
- C++全局变量操作
- Lua和C++交互 学习记录之五:全局数组交互
- C/C++定义全局变量/常量几种方法的区别
- c++在类的内部访问全局变量
- Lua和C++交互 学习记录之六:全局函数交互
- Javascript:谈谈JS的全局变量跟局部变量
- C, C++中全局变量的默认值