JS Engine
Kaitiren
热情开放的技术专家,从事游戏开发方面的各项工作!
DXDStudio(Design and Xperience Development Studio)
展开
-
SpiderMonkey 脚本化您的应用
和其他的 JavaScript 引擎一样,SpiderMonkey 不直接提供像 DOM 这样的对象,而是提供解析,执行 JavaSccript 代码,垃圾回收等机制。SpidlerMonkey 是一个在 Mozilla 之下的开源项目,要使用 SpiderMonkey,需要下载其源码,然后编译为静态 / 动态库使用。要在自己的应用程序中使用 SpiderMonkey,首先需要了解以下三个原创 2014-03-19 15:37:45 · 6595 阅读 · 0 评论 -
【cocos2d-x从c++到js】傀儡构造函数
上篇我们以Sprite为例,分析了注册函数。但其中我们似乎遗漏了一个地方,那就是构造函数。因为Cocos2d-x在C++层使用的是工场函数来生成对象,而不是构造函数。所以在JS层代码中,也需要有相应的对应机制来处理这件事。看一下jsb_cocos2dx_auto.hpp123456ext原创 2014-03-26 11:52:45 · 2776 阅读 · 0 评论 -
【cocos2d-x从c++到js】注册函数
前面的文章中讲过,在游戏启动时,会调用大量的addRegisterCallback函数,向SpiderMonkey注册Cocos2d-x引擎的函数。123456789101112131415161718Scrip原创 2014-03-26 11:51:01 · 3465 阅读 · 0 评论 -
iOS7新JavaScriptCore框架介绍
这个框架其实只是基于webkit中以C/C++实现的JavaScriptCore的一个包装,在旧版本iOS开发中,很多开发者也会自行将webkit的库引入项目编译使用。不过虽然iOS7把它当成了标准库,可惜目前,我还没有在Apple Developer中找到像那样的官方文档介绍这个框架的具体使用方法。JavaScriptCore中的类在项目中引入JavaScriptCo原创 2014-04-09 11:08:45 · 8911 阅读 · 0 评论 -
JavaScriptCore框架在iOS7中的对象交互和管理教程
上一篇文章中已经简单入门了iOS7中新加的JavaScriptCore框架的基本用法,十分的简单方便而且高效,不过也仅限于数值型、布尔型、字符串、数组等这些基础类型。本文将扩展到更复杂的类型,介绍一下该强大的框架是如何让Objective-C对象和JavaScript对象进行直接互通的。为了方便起见,以下所有代码中的JSContext对象都会添加如下的log方法和eventHandler:原创 2014-04-09 11:16:47 · 17586 阅读 · 2 评论 -
如何在iOS和Android上选择一个JavaScript 引擎进行应用开发
在我开始使用OpenAphid-Engine的时候,已经有几种类似的iOS/Android 项目.这些商业项目或者开源项目使用JavaScript实现代码特性。比如,Titanium 和PhoneGap 允许开发者使用JavaScript开发本地 iOS/Android apps;ngCore 更是可以使用纯正的JavaScript构建跨平台的游戏。JavaScript已经成为了编程语言中原创 2014-04-09 11:01:27 · 14510 阅读 · 0 评论 -
【cocos2d-x从c++到js】回调函数2——JSCallbackWrapper
上一篇我们讲了按键回调,这一次我们来说说各种逻辑上的回调函数。Cocos2d-x里面一共有三大类回调函数,第一是按键回调CCMenu相关的,第二类是定时器相关的回调Schedule,第三类是Action相关的回调CallFunc。这些回调从最初的引擎版本中就存在着,一直到现在。一、绑定代码在JSB的解决方案中,对于后两类函数,引擎原创 2014-03-26 11:46:31 · 2994 阅读 · 0 评论 -
【cocos2d-x从c++到js】JS与C++的交互2——JS与C++的“函数重载”问题
对于C++来说,存在函数重载,例如:12void CCNode::setScale(float scale)void CCNode::setScale(float scaleX,float scaleY)这两个函数的函数名是一样的,但是参数表不同。最终在编译器编译后的函数签名不一样。原创 2014-03-26 11:42:50 · 3447 阅读 · 0 评论 -
【cocos2d-x从c++到js】JS与C++的交互1——JS代码调用C++代码
我们要通过SpiderMonkey引擎的注册接口,向SpiderMonkey注册相应的从C++到JS的绑定函数,这些函数用于把JS函数调用代码转换成对应C++函数调用来执行。1234567891011121314151617原创 2014-03-26 11:41:39 · 8291 阅读 · 0 评论 -
【cocos2d-x从c++到js】JS与C++的交互3——C++和JS类型转换
在SpiderMonkey执行时,经常要把JS中的数据类型转换成C++类型,比如int,unit,string,各种容器等等。转换之后,才能够给对应的C++函数传递参数,来完成对应的C++函数的调用。反过来也是一样,C++的数据类型要返回到JS里面,这样JS层的代码才能继续跑,也需要把C++类型转换为JS类型。这些“基本数据类型”的转换,是通过预先编写的代码来完成的,cxx-g原创 2014-03-26 11:43:50 · 6366 阅读 · 1 评论 -
【cocos2d-x从c++到js】使用cocos2d-console工具转换脚本为字节码
从Cocos2D-X v2.1.4版本开始,增加了Cocos2D-console命令行工具,该工具的其中一个功能是:把.js文件转换为.jsc文件,该文件是字节码格式,可以提高代码的安全性。使用这个工具的方式很简单。以引擎自带的TestJavaScript项目为例:首先我们cd到Cocos2D-console的目录1转载 2014-03-26 11:54:36 · 3887 阅读 · 0 评论 -
【cocos2d-x从c++到js】使用FireFox进行JS远程调试
一、四种调试方式目前为止,cocos2d-x jsbinding的调试方法有四种:1.在基于Native的手游开发中,脚本语言一般都不支持在原生IDE中的调试,除非有专门的IDE或插件。所以打log是一种常见的调试方式。log调试的问题就是,错误定位需要很多遍才行,也不能修改内存数据。2.使用cocos2d-html5版本,在浏览器里原创 2014-03-26 11:55:49 · 5513 阅读 · 1 评论 -
基于C++和JavaScript的全平台全栈式游戏开发解决方案的思考
一、JavaScript的机会近几年JavaScript在各个领域愈发流行起来。JS已经逐渐摆脱了只能做web的局限,在前端,后端,Native,Web,游戏,应用等各个领域遍地开花。Cocos2d-x支持两种脚本系统,Lua和JavaScript。考虑到未来的趋势,我选择JavaScript。因为JavaScript和C++配合未来能够覆盖到很多主流应原创 2014-03-26 11:57:04 · 2195 阅读 · 0 评论 -
【cocos2d-x从c++到js】回调函数1——按键回调
回调函数是界面交互和接入各种第三方SDK的关键所在,因为回调函数的C++代码是不能自动生成的,一切的一切,都需要手写完成。比较不错的是,Cocos2d-x引擎对于回调函数提供了完整的包装机制。我们所需要做的就是了解这个机制,并使用他。学习引擎自己的代码例子,可以比较快速准确的上手这一机制。首先,我们在Cocos2d-x 3.0 beta版中,使用他自带的工程原创 2014-03-26 11:45:29 · 5522 阅读 · 0 评论 -
JavaScript-C/C++ (SpiderMonkey) 引擎嵌入开发指南(中文向导)
JavaScript-C引擎概览本文档提供了一个JavaScript(JS)引擎的C语言实现的概述,他介绍了你如何在你的应用程序中嵌入脚本引擎来让它们可以使用JS。有两大理由让你在应用程序中嵌入JS引擎:使用脚本来自动操作你的应用程序;同时使用JS引擎和脚本无论何时都可以提供跨平台的功能并消除了应用程序解决方案对平台的依赖性。受支持的JavaScript版本本JS引擎支持从翻译 2014-03-24 15:34:11 · 8008 阅读 · 2 评论 -
功能强大的JavaScript引擎--SpiderMonkey与实现
JavaScript是由Netscape开发的对象脚本语言,其特点是开发简单、功能灵活,目前已广泛应用于WEB页面及服务器应用程序中。HTML本身是静态的、不允许用户干预,但用JavaScript编写的脚本程序就可以在用户的浏览器端运行,可以同用户进行交互,从而实现动态页面。可以将JavaScript与嵌入WEB的大多数对象的事件(如鼠标点击、移动等)相关联,然后用自己的方式处理这些事件。Java原创 2014-03-21 14:23:44 · 3317 阅读 · 0 评论 -
gwt中java与js的相互调用
1. java通过jsni调用内部js Button button = new Button("java调用内部jsni的js方法"); button.addClickHandler(new ClickHandler() { @Override转载 2014-04-29 20:11:05 · 3396 阅读 · 1 评论 -
SpiderMonkey-让你的C++程序支持JavaScript脚本
译序有些网友对为什么D2JSP能运行JavaScript脚本程序感到奇怪,因此我翻译了这篇文章,原文在这里。这篇教程手把手教你如何利用SpiderMonkey创建一个能执行JavaScript脚本的C++程序,并让JavaScript脚本操纵你的C++程序的内部数据、操作。从这篇教程可以看到在SpiderMonkey引擎的帮助下,让C++程序支持JavaScript脚本是一件很容易的事,更原创 2014-03-19 14:52:59 · 2031 阅读 · 0 评论 -
ES6:JavaScript 新特性
我相信,在ECMAScript.next到来的时候,我们现在每天都在写的JavaScript代码将会发生巨大的变化.接下来的一年将会是令JavaScript开发者们兴奋的一年,越来越多的特性提案将被最终敲定,新一版本的JavaScript将会慢慢得到普及.本文中,我将会讲几个我个人很期待的,希望能在2013年或者更晚一点使用上的新特性.ES.next目前的实现情况可翻译 2014-05-19 11:44:00 · 10072 阅读 · 0 评论