大话cocos2d-js(3)

继续上一章,终于分析到主要部分

  上一章是说到,必须添加json文件内的所有js模块,才会给 self._prepared属性赋值true,循环定时器内的if语句才会被执行,if语句尾部是清除定时器。

来逐步分析一下:

  执行cc对象下_setup()方法,来定位一下。

  CCBoot.js文件内 从line 1916 —— line 2025 都属于 _setup方法,一点一点来分析。

  

  第一个if else语句true的话,结束这个方法,看看1915行,那里算是初始化,第一次执行这个方法以后,把cc的_setupCalled属性设置为true,防止2次执行。

  1922line:给变量element 赋值,其实看到这个名字在看到赋值语句,el形参传入cc.$方法,了解过jquery的同学,$(参数) 是一个复杂选择器。

  返回了一个元素,来深究一下cc.$() 是怎么实现的,还有其他功能?先来定位一下。

  看了一下miniFramework.js 文件 整个文件都是 关于 cc.$了。

  变量 parent === document ,因为 三元表达式为true, $是cc对象的属性,所以this执行cc。

  变量 el 的值都会是一个元素,如果传进来的形参 x 是 HTMLElement(元素)的话。否则的话 document.querySelector选择器元素

  上面说了 el 其实就是我们的canvas 元素,元素也是一个对象,canvas 元素也同样拥有选择器 cc.$的功能

  canvasElem.hasClass方法:判断是否有传入的className

  canvasElem.addClass方法:添加class

  canvasElem.removeClass方法:删除class,用 hasClass方法来判断是否有,有的话在删除

  canvasElem.remve方法:删除自身,如果有父节点的话

  canvasElem.appendTo方法:append添加To到,把自身添加到

  canvasElem.prependTo方法:插入到子元素顶部

  canvasElem.transformsf方法:执行它呢,就会设置style的变形行内样式,至于为什么是通过键值方式来访问要设置的属性呢?往下检索。在底部会发现这个,来判断设置style兼容前绰,拼接起来。

  设置好了style兼容前绰,给它赋值的时候

  这些方法有什么用呢?继续往下检索,会发现这个,cc.$.hd也就说得通了,兼容3d的就返回3d的拼接形参后字符串

  继续看来这一段:

  这里是初始设置了 canvasElem元素,元素也是对象,我们可以给它添加属性,初始化了变形定位的值得。

  在看4个方法:把设置变形  旋转  大小 都封装了

  好cc.$()方法基本就这个样子,带着诸多疑问,后面还有很长很长一段,这一章先到这里。

时间: 2024-10-27 10:43:41

大话cocos2d-js(3)的相关文章

cocos2d js ClippingNode 制作标题闪亮特效

1.效果图: 之前在<Android 高仿 IOS7 IPhone 解锁 Slide To Unlock>中制作了文字上闪亮移动的效果,这次我们来看下怎样在cocos2d js 中做出类似的效果. 顺便给我公司的游戏打下广告.https://itunes.apple.com/cn/app/kuang-zhan-san-guo/id691116157? mt=8 2.效果原理 很easy.就是一张白色两边羽化的图片在标题上从左往右移动.可是普通的移动会穿帮.我们须要以标题作为模板来截取白色的图片

大话immutable.js

为啥要用immutable.js呢.毫不夸张的说.有了immutable.js(当然也有其他实现库)..才能将react的性能发挥到极致!要是各位看官用过一段时间的react,而没有用immutable那么本文非常适合你. 1,对于react的来说,如果父组建有多个子组建 想象一下这种场景,一个父组建下面一大堆子组建.然后呢,这个父组建re-render.是不是下面的子组建都得跟着re-render.可是很多子组建里面是冤枉的啊!!很多子组建的props 和 state 然而并没有改变啊!!虽然

cocos2d JS 函数类型相互转换(字符串、整形、浮点形、布尔值)

工作忙好些天了,近段时间抽点空分享一下自己学习JS的一点笔记心得做点记录,大神勿喷,谢谢! p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC" } span.s1 { font: 18.0px Helvetica } 1.字符串的转化 1 var found = false; 2 console.log(found.toString()); //输出 false 3 4 var num1 = 10; 5

cocos2d JS 本地缓存存储登陆记住账号密码-&gt;相当于C++中的UserDefault

在cocos-js 3.0以上的版本中,当我们用到本地存储的时候,发现以前用到的UserDefault在JS中并没有导出,而是换成了LocalStorage. 在LocalStorage.h文件中我们查看了一下源码,使用方法就是设置Key-Value的方式 存储数据:cc.sys.localStorage.setItem("key","value") 获取数据:cc.sys.localStorage.getItem("key") 移除数据:cc.

cocos2d.js

1.节点是Cocos2d最基础的东西 2.坐标与普通数学坐标一致 3.children属性表示节点的孩子,父节点位置变化,它包含的子节点也会跟着变化,以整体的形势移动 4.层(layer), 新建层:var layer = new cc.Layer(); 把层添加到舞台上:scene.addChild(layer); 再把子节点添加到这个层上:layer.addChild(child); 5.实现纯色背景:LayerColor 6.实现渐变的层:LayerGradient 7.Sprite加载背

html5 cocos2d js Access-Control-Allow-Origin

1.No 'Access-Control-Allow-Origin' header is present on the requested 近期在接html5的渠道,遇到了跨域的问题,使用 js 的 ajax post 或者get 方法,仅仅要目标URL略微有点不同,就会有跨域问题,浏览器会由于安全问题自己主动拦截. 这个问题事实上不是client能解决的,最好是目标URL的server代码是你能够控制的.最方便的解决方式是在你訪问的server端页面加代码.比方你如今的地址是 http://a

cocos2d JS 艺术字特殊符号的显示

this.setSocreAtion(score, this.tfMoneyList[index],mun); //传入分数与对象,调用下面的函数 setSocreAtion : function (num,artNumWidget) { num = parseInt(num);//转化为 int var number = num; if(num==0)return; //判断为0直接return,不执行下面的代码 if (num<0){ num = "/"+ num; }els

cocos2d js ScrollView的使用方法

游戏中非常多须要用到ScrollView的情况,也就是须要滚动一片区域. 这里有两种实现方法,一种是使用cocos studio的方式,另外一种是手写代码.先看第一种 第一种记得在设置滚动区域时选取裁剪项. var size = cc.winSize; //读取json文件 var root = ccs.uiReader.widgetFromJsonFile(res.listJson); this.addChild(root); //获取在cocos studio里面设定好的scrollView

cocos2d JS 基础语法运算符

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC" } 简单且逼格高的运算符 var a = 12; console.log(-a); //输出 -12 - -> 取反 var b = a++; console.log(b); //输出 12 - -> 先赋值b,a再++ b = ++a; console.log(b); //输出 14 - -> ++a赋值b,a先++后赋值 var a

cocos2d JS 基础语法间的函数方法相互调用

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC" } 1.函数嵌套函数 1 function calcuate(opr, a, b) { // 定义函数,opr - -> 符号,a,b - -> 数值 2 3 //定义 + 函数 4 function add(a, b){ 5 return a + b; 6 } 7 8 //定义 - 函数 9 function sub(a, b){ 10 r