获取基础容器var T1=ccui.helper.seekWidgetByTag(LoginJs.node,95);获取文本框 uiTextFiled=ccui.helper.seekWidgetByTag(T1,98);//获取文本框
var T2=ccui.helper.seekWidgetByTag(LoginJs.node,99);//获取基础容器
uiTextFiled1=ccui.helper.seekWidgetByTag(T2,102);
seekWidgetByTag???????
helper????????cocos code IDE源码
ccui.helper = {
/**
* Finds a widget whose tag equals to param tag from root widget.
* @param {ccui.Widget} root
* @param {number} tag
* @returns {ccui.Widget}
*/
seekWidgetByTag: function (root, tag) {
if (!root)
return null;
if (root.getTag() === tag)
return root;
var arrayRootChildren = root.getChildren();
var length = arrayRootChildren.length;
for (var i = 0; i < length; i++) {
var child = arrayRootChildren[i];
var res = ccui.helper.seekWidgetByTag(child, tag);
if (res !== null)
return res;
}
return null;
},
/**
* Finds a widget whose name equals to param name from root widget.
* @param {ccui.Widget} root
* @param {String} name
* @returns {ccui.Widget}
*/
seekWidgetByName: function (root, name) {
if (!root)
return null;
if (root.getName() === name)
return root;
var arrayRootChildren = root.getChildren();
var length = arrayRootChildren.length;
for (var i = 0; i < length; i++) {
var child = arrayRootChildren[i];
var res = ccui.helper.seekWidgetByName(child, name);
if (res !== null)
return res;
}
return null;
},
/**
* Finds a widget whose name equals to param name from root widget.
* RelativeLayout will call this method to find the widget witch is needed.
* @param {ccui.Widget} root
* @param {String} name
* @returns {ccui.Widget}
*/
seekWidgetByRelativeName: function (root, name) {
if (!root)
return null;
var arrayRootChildren = root.getChildren();
var length = arrayRootChildren.length;
for (var i = 0; i < length; i++) {
var child = arrayRootChildren[i];
var layoutParameter = child.getLayoutParameter(ccui.LayoutParameter.RELATIVE);
if (layoutParameter && layoutParameter.getRelativeName() === name)
return child;
}
return null;
},
/**
* Finds a widget whose action tag equals to param name from root widget.
* @param {ccui.Widget} root
* @param {Number} tag
* @returns {ccui.Widget}
*/
seekActionWidgetByActionTag: function (root, tag) {
if (!root)
return null;
if (root.getActionTag() === tag)
return root;
var arrayRootChildren = root.getChildren();
for (var i = 0; i < arrayRootChildren.length; i++) {
var child = arrayRootChildren[i];
var res = ccui.helper.seekActionWidgetByActionTag(child, tag);
if (res !== null)
return res;
}
return null;
} ,
_activeLayout: true,
/**
* Refresh object and it's children layout state
* @param {cc.Node} rootNode
*/
doLayout: function(rootNode){
if(!this._activeLayout)
return;
var children = rootNode.getChildren(), node;
for(var i = 0, len = children.length;i < len; i++) {
node = children[i];
var com = node.getComponent(ccui.LayoutComponent.NAME);
var parent = node.getParent();
if (null != com && null !== parent && com.refreshLayout)
com.refreshLayout();
}
},
changeLayoutSystemActiveState: function(active){
this._activeLayout = active;
},
/**
* restrict capInsetSize, when the capInsets' width is larger than the textureSize, it will restrict to 0, <br/>
* the height goes the same way as width.
* @param {cc.Rect} capInsets
* @param {cc.Size} textureSize
*/
restrictCapInsetRect: function (capInsets, textureSize) {
var x = capInsets.x, y = capInsets.y;
var width = capInsets.width, height = capInsets.height;
if (textureSize.width < width) {
x = 0.0;
width = 0.0;
}
if (textureSize.height < height) {
y = 0.0;
height = 0.0;
}
return cc.rect(x, y, width, height);
}
};
winSize怎样获取??????
第二种
//////_login.addLickEventListener(this.btnCallback)btnCallback:function(){ }var username=ccui.helper.seekWidgetByTag(Tlayer,93);
///////ccui.helper.seekWidgetbyname直接用名字加载文本框
flag??????
seekWidgetByTag函数的原理
seekWidgetByTag: function (root, tag) {
if (!root)
return null;
if (root.getTag() === tag)
return root;
var arrayRootChildren = root.getChildren();
var length = arrayRootChildren.length;
for (var i = 0; i < length; i++) {
var child = arrayRootChildren[i];
var res = ccui.helper.seekWidgetByTag(child, tag);
if (res !== null)
return res;
}
return null;
}
判断食物不出现在蛇的身体上 方法:遍历,食物JS resource加载文件类project.json加载一下main入口menu菜单 菜单设置左下角 0,0 后面可以根据场景来设置坐标window.location.href=“http://baidu.com”,超链接
锚点设置,否则中心点处浏览器 导致九宫格形变//静态方法SnakeGame.create=function(){var snake=;return snake;}Math.round()保证为整数;Math.sin()清空节点,,,,,,清空蛇的身体数组setString()从后往前的遍历方法,移动身体var target=event.getCurrentTarget(); 得到this
旋转的函数解析,注意参数到使用
cc.rotateTo = function (duration, deltaAngleX, deltaAngleY) {
return new cc.RotateTo(duration, deltaAngleX, deltaAngleY);
};
director.pause();全部的场景都进行了暂停,如何解决?????,再次进入主游戏界面,图片若是旋转的 会出现倒转的现象,,,当游戏GameOver的时候,该语句暂停了 游戏的所有场景,目前本人还没有解决办法,暂停主循环:cc.director.pause()恢复主循环:cc.director.resume()
场景管理
通常来说,一个游戏会包含用于不同用例的几个场景,程序应该通过cc.director的API来控制场景流。
// 让导演对象执行目标场景
cc.director.runScene(scene);
// 获取当前正在执行的脚本
var
scene = cc.director.getRunningScene();
// 将一个新场景推入场景栈中,并替换运行场景为这个新场景
var
scene = cc.director.pushScene(scene);
// 将场景栈顶的场景推出场景栈,并替换运行场景为推出后栈顶的新场景
cc.director.popScene();
// 将场景栈中除了栈底的根场景以外的所有场景推出,并替换运行场景为根
场
景。
cc.director.popToRootScene()
除此之外,你可以通过cc.TransitionScene的效果类的转场特效来切换场景。
// 转场特效持续两秒 var transitionTime = 2; // 创建下一个场景 var nextScene = new cc.Scene(); // 使用下一个场景创建转场特效场景 var transitionScene = new cc.TransitionProgressInOut(transitionTime, nextScene); // 替换运行场景为转场特效场景 cc.director.runScene(transitionScene); JS关于局部变量和全局变量 javascript中变量的作用域跟其它编程语言中变量的作用域一样也有两种:局部变量和全局变量。 下面用具体的例子来了解一下局部变量和全局变量的关系: 实例一:
最后执行的结果是: 局部变量 局部变量 实例二:
最后执行的结果是: 局部变量 全局变量 分析:调用show()函数会打印出“局部变量”这个不难理解;实例一中的show()函数操作的是全局变量msg,当show()函数结束的时候局部变量msg已经被修改成别的值了,所以会打印出“局部变量”;而实例二中的show()函数中重新定义了一个自己局部的变量msg,操作的也是自己的局部变量(覆盖了全局变量msg),当show()函数结束的时候,剩下的代码就跟show()函数没有半毛钱的关系了,所以会打印出“全局变量”。 // 获取游戏主循环是否被暂停 var paused = cc.director.isPaused(); // 设置或获取动画帧间隔,这个设置会直接影响帧率 var interval = cc.director.getAnimationInterval(); cc.director.setAnimationInterval(value); // 设置或获取导演对象的内容放缩比例 var scale = cc.director.getContentScaleFactor(); cc.director.setContentScaleFactor(scaleFactor); // 设置或获取游戏世界可视窗口的原点和大小 var origin = cc.director.getVisibleOrigin(); var size = cc.director.getVisibleSize(); // 获取游戏世界大小,winSize的大小通常等同于设计分辨率,而 winSizeInPixel的大小是游戏世界的像素大小 var winSize = cc.director.getWinSize(); var winSizeInPixel = cc.director.getWinSizeInPixels(); // 设置或获取调试信息是否被显示 var isDisplaying = cc.director.isDisplayStats(); cc.director.setDisplayStats(displayStats); // 设置或获取视图,它指向`cc.view` var view = cc.director.getOpenGLView(); cc.director.setOpenGLView(openGLView); // 设置或获取WebGL/OpenGL的投影, // 可能的投影类型包括:cc.Director.PROJECTION_2D, cc.Director.PROJECTION_3D, cc.Director.PROJECTION_CUSTOM cc.director.getProjection(); cc.director.setProjection(projection);
导演对象还有一些内建的系统事件: cc.Director.EVENT_AFTER_DRAW:这个事件在每一帧图像的绘制完成之后被触发。 cc.Director.EVENT_AFTER_VISIT:这个事件在每一帧场景树遍历之后被触发。 cc.Director.EVENT_AFTER_UPDATE:这个事件在每一帧计时器任务执行完成之后被触发。 cc.Director.EVENT_PROJECTION_CHANGED:这个事件在导演对象的投影属性被修改之后触发。 |