cocoscreator连接MySQL_cocosCreator 入门(三) 访问节点及属性

配置: MacOS 10.12.6  CocosCreator2.3.3 JavaScript VisualCode

访问同节点下的组件

获取同一节点下的其他组件,我们可使用getComponent,比如我们想获取如下节点的Label:

401f8dae30cb5de79e49feac7cc7b087.png

start: function() {//获取label节点

//由于node中也存在着一个getComponent方法,因此下面两个的写法一致

var textLabel = this.getComponent(cc.Label);var textLabel = this.node.getComponent(cc.Label);//添加判定,检测组件是否获取到,若getComponent获取失败,将返回null

if (!textLabel) {

cc.error('get component failed');

}else{

textLabel.string= '获取文本组件';

}//获取脚本组件

var script = this.getComponent('debugScript');

console.log(script);

},

访问其他节点组件

1. 利用属性检查器设置,即在脚本的properties属性中设置节点,比如我们想在TextLabel中访问MenuNode节点:

1fe60ddadae5bf38d90529079e1e4f32.png

我们可以在startBtn下的javaScript脚本下添加内容:

properties: {//值类型属性使用,比如:Number,Vec2, String, Boolean, Enum, Color等

Number:0,

Vec2: [],

String:'',

Boolean:true,//引用类型属性相关,需要在拖拽对应的节点或者资源,添加了两种方式,可根据图示对比下区别

//方式1:

menuNode1: cc.Node,//方式2:

menuNode2: {default: null, //设置属性的默认值,该属性值仅在第一次添加到节点时才会使用

type: cc.Node, //属性的数据类型

visible: true, //是否在属性检查器中显示该属性

displayName: 'menuNode2', //在属性检查器中显示成设定的名字

tooltip: 'this is MenuNode2', //添加属性说明tip

},

},

632e8fb01f6d66d934ee8e55ccc31c88.png

然后把层级管理器中的menuNode节点拖拽到menuNode1,menuNode2中,我们就可以在脚本中获取了。

start: function() {

let menuNode= this.menuNode1

console.log('--> menuNode.name:', menuNode.name); //-->menuNode.name:MenuNode

},

2. 利用脚本进行查找,我们依然以TextLabel脚本中想获取menuNode的节点为例:

start: function() {/*--------- 获取父节点后再获取指定子节点 ------------*/

//获取当前的节点

let currentNode = this.node;//获取父节点,即Canvas

let parentNode = this.node.parent;

console.log('--> parentNode name:', parentNode.name); //-->parentNode name:Canvas

//获取指定节点

let menuNode = parentNode.getChildByName('MenuNode');if(menuNode) {

console.log('-->menuNode name:', menuNode.name); //-->menuNode name:MenuNode

}/*--------- 使用cc.find 方法 ------------*/let menuBtn= cc.find('Canvas/MenuNode/quitBtn');if(menuBtn) {

console.log('--> menuBtn name:', menuBtn.name); //--> menuBtn name: quitBtn

}

},

全局变量访问

假设我们有多个脚本存在,我们需要在A脚本里访问B脚本下的属性,我们可以适当且谨慎的使用全局变量。

建议创建一个脚本文件,并命名为GlobalConfig.js文件,这样有有利于查看并维护。比如:

//------------------- GlobalConfig.js -------------------//创建格式为:window.name = {};

window.G ={

quitBtn= null, //获取quitBtn节点

}//-------------------quitScript.js -------------------//脚本组件添加在menuNode下的quitBtn节点下

//一定要确保全局变量初始化,否则会报错,因此添加到onLoad中

onLoad: function() {//初始化全局变量指定的属性值

G.quitBtn = this.node;

},//-------------------debugScript.js -------------------//脚本组件添加在TextLabel中start:function() {

console.log('--> quitBtn name:',G.quitBtn.name) //quitBtn name

},

模块访问

其主要实现借助于module.exports 声明模块,通过require + 文件名(不含路径) 来获取模块相关。

//--------- GlobalConfig.js//GlobalConfig.js 在assets/scripts/config中

module.exports ={

quitBtn:null,

}//---------quitScript.js

var G = require("GlobalConfig");

cc.Class({

extends: cc.Component,

onLoad:function() {//初始化全局变量指定的属性值

G.quitBtn = this.node;

},

});//---------debugScript.js

var G = require("GlobalConfig");

cc.Class({

extends: cc.Component,

start:function() {

console.log('--> quitBtn name:',G.quitBtn.name) //quitBtn name

},

});

拓展:

在上面的示例程序中,声明变量时,我使用了let 与 var, let类似于var,但是仅在代码块内有效,比如

//let的作用域仅在指定的代码块中

{var a = 10;

let b= 11;

}

console.log('var a:',a); //10

console.log("let b:",b); //Uncaught ReferenceError: b is not defined

为此,for循环的索引很适合用let来声明,比如:

start: function() {//使用 var, 循环体外数据依然存在

for(var i = 0; i < 10; i++) {var varCount =i;

}

console.log('--> var i:',i) //--> var i:10

console.log('--> varCount:',i) //--> varCount:10

//使用let, 循环体外数值报错

for(let index = 0; index < 10; index++) {

let letCount=index;

}

console.log('--> let index:',index) // Uncaught ReferenceError: index is not defined},

...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP连接MySQL数据库的种方式分别是PDO、MySQLi和mysql。 PDO(PHP Data Objects)是PHP提供的一种数据库操作扩展,支持多种数据库,其中包括MySQL。PDO提供了一组统一的方法,使开发者能够以同样的方式对待不同的数据库。其优点包括安全性高、可移植性好、支持事务处理等。使用PDO连接MySQL数据库时,需要使用PDO的构造函数new PDO(),并传入相关的连接信息。 MySQLi(MySQL Improved)是PHP中的一种连接MySQL数据库的扩展,是对原有mysql扩展的增强和改进。MySQLi提供了面向对象和面向过程两种API,支持事务处理、预处理语句、存储过程等功能,同时也提供了对MySQL的新特性的支持。使用MySQLi连接MySQL数据库时,首先需要创建一个MySQLi对象,然后调用相应的方法进行连接、查询等操作。 mysql扩展是PHP早期版本提供的一种连接MySQL数据库的方式,但自PHP5.5.0版本开始已被弃用,不再被推荐使用。mysql扩展的连接方式相对简单,使用mysql_connect()函数进行连接,并传入相关的连接参数。然而,mysql扩展存在一些安全性和兼容性的问题,容易受到SQL注入等攻击。 综上所述,PDO、MySQLi和mysql是PHP常用的连接MySQL数据库的方式。其中PDO具有较高的安全性和可移植性,使用方式统一;MySQLi支持较多的功能特性,包括事务处理、预处理语句等;mysql扩展已被弃用,不推荐使用。开发者可以根据自己的需求和情况选择合适的连接方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值