<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chenbingzhao的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chenbingzhao</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chenbingzhao]]></copyright><item><title><![CDATA[npm国内镜像源设置]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/110092280</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/110092280</guid><author>chenbingzhao</author><pubDate>Tue, 24 Nov 2020 19:29:22 +0800</pubDate><description><![CDATA[淘宝npm镜像
搜索地址：http://npm.taobao.org/
registry地址：http://registry.npm.taobao.org/
cnpmjs镜像
搜索地址：http://cnpmjs.org/
registry地址：http://r.cnpmjs.org/
使用方法：
临时使用npm --registry https://registry.npm.taobao.org install express
持久使用npm config set registry https://reg]]></description><category></category></item><item><title><![CDATA[egret-皮肤]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/109906329</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/109906329</guid><author>chenbingzhao</author><pubDate>Sat, 21 Nov 2020 19:51:09 +0800</pubDate><description><![CDATA[皮肤分离概念
egret的eui.Component通过皮肤分离，将单个组件分为逻辑组件和外观组件。新建一个类继承Component或其子类，然后设置该类的skinName属性，即可将皮肤绑定到逻辑组件。
皮肤如何绑定组件

新建一个exml皮肤文件，随便拖点控件进去。

​	切换到源码模式：
&lt;?xml version='1.0' encoding='utf-8'?&gt;
&lt;e:Skin class="TestSkin"
	 width="100"
	height="50" xmlns:e=]]></description><category></category></item><item><title><![CDATA[js面向对象编程]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/109181403</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/109181403</guid><author>chenbingzhao</author><pubDate>Tue, 20 Oct 2020 15:08:11 +0800</pubDate><description><![CDATA[文章目录创建对象创建方法创建模式工厂模式构造函数模式原型模式组合使用构造函数模式和原型模式继承原型链借用构造函数组合继承寄生组合式继承class继承
创建对象
创建方法

new

let a = new Object();
a.name = "xiaoming";
console.log(a); // =&gt; {name: 'xiaoming'}


{}

let b = {};
b.name = "dong";
console.log(b); // =&gt; { name: 'dong' }

]]></description><category></category></item><item><title><![CDATA[lua注意点]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/96611089</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/96611089</guid><author>chenbingzhao</author><pubDate>Sat, 20 Jul 2019 17:51:44 +0800</pubDate><description><![CDATA[table是否为空


t == {}
错误 table属于引用变量，这里用了t的地址和匿名table的地址比较


table.getn(t) 或 #t
table.getn()和# 只能正确获取数组的长度，如果table是key/value则获取长度错误。


next(t)
local t = {}
print(next(t)) -- nil



table.sort()
xpcall()...]]></description><category></category></item><item><title><![CDATA[获取已发布微信小游戏源码]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/86510830</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/86510830</guid><author>chenbingzhao</author><pubDate>Wed, 16 Jan 2019 17:03:57 +0800</pubDate><description><![CDATA[转载自https://blog.youkuaiyun.com/chao2458/article/details/81381692#commentsedit

对原文反编译中的错误进行了修改。




首先需要知道的是小程序在手机里的文件储存位置

———— 具体目录位置：/data/data/com.tencent.mm/MicroMsg/{{一串32位的16进制字符串名文件夹}}/appbrand/pk...]]></description><category></category></item><item><title><![CDATA[算法题-数组内的数是否连续整数]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/84575736</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/84575736</guid><author>chenbingzhao</author><pubDate>Tue, 27 Nov 2018 23:49:35 +0800</pubDate><description><![CDATA[题目：一数组有N个整数，数组内有可能有重复的整数，0可以当做任何数，判断数组内的数字是否是连续的整数。如

数组A [5, 1, 3, 0, 0]两个0分别可以看做2、4，所以数组A为连续数组。

思路：

1、将数组A从小到大排序得到数组B；

2、判断数组B除0外是否还有其他重复数字，如果有重复数字则不是连续数组，如果无执行步骤3；

3、取数组B最后一个数，和数组B第一个非0数，求差，如果差...]]></description><category></category></item><item><title><![CDATA[cocos2d缓存机制]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/84455131</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/84455131</guid><author>chenbingzhao</author><pubDate>Sun, 25 Nov 2018 00:10:18 +0800</pubDate><description><![CDATA[cocos2d的缓存机制主要设置到CCTextureCache、CCSpriteFrameCache、CCAnimationCache。下面来简单介绍一下这三种缓存机制。

CCTextureCache

游戏还没运行时我们的图片资源都是保存在外部存储器（硬盘、闪存）中，当我们运行游戏，把图片显示出来时，这个流程就是从外部存储器读取图片数据到内存，然后根据内存数据进行渲染，这整个步骤比较耗时的操作...]]></description><category></category></item><item><title><![CDATA[lua判断一个表是否为空表]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/84405478</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/84405478</guid><author>chenbingzhao</author><pubDate>Sat, 24 Nov 2018 01:32:06 +0800</pubDate><description><![CDATA[1、有人会直接用表与{}比较


local a = {}

if a == {} then
    print(&quot;a 是空表&quot;)
else 
    print(&quot;a 不是空表&quot;)
end

答案可能出乎你的意外，最后打印的是：a不是空表。因为table是引用变量，所以这里比较的是a的地址和匿名table的地址，所以是不相等的。

2、还有人可能用table.maxn()


local a =...]]></description><category></category></item><item><title><![CDATA[cocos2d内存管理]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/84345300</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/84345300</guid><author>chenbingzhao</author><pubDate>Thu, 22 Nov 2018 21:59:43 +0800</pubDate><description><![CDATA[cocos2d使用引用计数来管理内存，主要涉及到以下几个重要的类：Ref、Node、AutoreleasePool。

cocos2d简单描述：当用create方法创建一个Node时，Node的引用计数为1，Node被addChild时引用计数加1为2，一帧渲染结束后引用计数减一为1，最后引用计数为0的Node会被释放掉。

具体情况：

1、

Ref在创建时将_referenceCount初始...]]></description><category></category></item><item><title><![CDATA[信息加密]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/81463987</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/81463987</guid><author>chenbingzhao</author><pubDate>Tue, 07 Aug 2018 00:16:21 +0800</pubDate><description><![CDATA[1、在计算机网络中，所有数据都是暴露的。也就是说你从计算机A发送到计算机B的数据，别人利用计算机C也能轻易获取到你所发出一模一样的数据。

打个比方：在学生时代，很流行传纸条，小明可以写一张纸条从他的位置，经过多位同学，最终传到小红同学手上。但是这个纸条的信息是暴露的，纸条经过的每个位置的同学都可以打开纸条看到里面的内容，这样他们的隐私就暴露在这些同学手上了。小明想了一个办法：加密。小明制定了一个...]]></description><category></category></item><item><title><![CDATA[cocos2d-x陷阱]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/80330494</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/80330494</guid><author>chenbingzhao</author><pubDate>Tue, 15 May 2018 22:46:59 +0800</pubDate><description><![CDATA[未完成。。。。。

1、EditBox

EditBox隐藏问题

 

2、ListView

描述：widget下的listview控件大量数据加载卡顿问题（quick的原生listview不存在这个问题）

解决：用TableView替代，但是TableView的子控件需要监听点击事件时会有问题，最好重写ListView。

 

3、TextView

设置自动换行后 重新设置文本内容不成...]]></description><category></category></item><item><title><![CDATA[数据结构-简介]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/80187867</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/80187867</guid><author>chenbingzhao</author><pubDate>Thu, 03 May 2018 22:02:04 +0800</pubDate><description><![CDATA[1、逻辑结构
①线性结构

    线性表
一般线性表
线性表
特殊线性表
栈与队列、字符串
线性表的推广
数组、广义表
②非线性结构

    树结构
树、二叉树
    图结构
有向图、无向图


2、存储结构（物理结构）
①顺序存储结构
②链式存储结构]]></description><category></category></item><item><title><![CDATA[editbox安卓平台下隐藏导航栏（转载）]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/80048714</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/80048714</guid><author>chenbingzhao</author><pubDate>Mon, 23 Apr 2018 12:07:11 +0800</pubDate><description><![CDATA[出自：http://www.cnblogs.com/gamesky/p/8485272.html环境：quick-cocos2dx-community 3.6.5只有在Android 4.4及以上系统才支持沉浸式模式，修改 AppActivity代码如下：    @Override
    public Cocos2dxGLSurfaceView onCreateView() {

       ...]]></description><category></category></item><item><title><![CDATA[cocos2d事件监听机制]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/79767743</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/79767743</guid><author>chenbingzhao</author><pubDate>Sat, 31 Mar 2018 14:30:26 +0800</pubDate><description><![CDATA[下面就以我们常用的单点触摸监听来讲一下事件监听机制原理：

实现触摸监听代码如下：

 


	local listener = cc.EventListenerTouchOneByOne:create()
	local function onTouchBegan(touch, event)
		return true
	end
	local function onTouchMoved(touch...]]></description><category></category></item><item><title><![CDATA[cocos2dx TableView应用]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/79642249</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/79642249</guid><author>chenbingzhao</author><pubDate>Wed, 21 Mar 2018 16:44:08 +0800</pubDate><description><![CDATA[function TransCoinLayer:initTableView(  )
	self.listItem = self.recordPanel:getChildByName("Panel_item")
	self.listBgPanle = self.recordPanel:getChildByName("Panel_listBg")
	self.tableView = cc.TableV]]></description><category></category></item><item><title><![CDATA[ImageView 设置九宫格]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/79501529</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/79501529</guid><author>chenbingzhao</author><pubDate>Fri, 09 Mar 2018 18:41:25 +0800</pubDate><description><![CDATA[            addFriendView = ccui.ImageView:create(&quot;friend/frame.png&quot;)
            addFriendView:setScale9Enabled(true)
            addFriendView:ignoreContentAdaptWithSize(false)
            addFriend...]]></description><category></category></item><item><title><![CDATA[文本自适应]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/79493793</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/79493793</guid><author>chenbingzhao</author><pubDate>Fri, 09 Mar 2018 10:19:38 +0800</pubDate><description><![CDATA[                Label_text:setTextAreaSize(cc.size(850, 0))
                Label_text:ignoreContentAdaptWithSize(false)
                Label_text:setTextHorizontalAlignment( cc.TEXT_ALIGNMENT_LEFT )]]></description><category></category></item><item><title><![CDATA[std::function]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/54926214</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/54926214</guid><author>chenbingzhao</author><pubDate>Wed, 08 Feb 2017 14:09:58 +0800</pubDate><description><![CDATA[先来看看下面这两行代码：
std::functionvoid(EventKeyboard::KeyCode, Event*)> onKeyPressed;
std::functionvoid(EventKeyboard::KeyCode, Event*)> onKeyReleased;

这两行代码是从Cocos2d-x中摘出来的，重点是这两行代码的定义啊。std::fu]]></description><category></category></item><item><title><![CDATA[lambda 表达式解析]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/54924976</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/54924976</guid><author>chenbingzhao</author><pubDate>Wed, 08 Feb 2017 11:43:22 +0800</pubDate><description><![CDATA[C++11 的 lambda 表达式规范如下：







[ capture ] ( params ) mutable exception attribute -> ret { body }

(1)



[ capture ] ( params ) -> ret { body }

(2)



[ capture ] ( params ) { bo]]></description><category></category></item><item><title><![CDATA[面向对象-继承]]></title><link>https://blog.youkuaiyun.com/chenbingzhao/article/details/54317471</link><guid>https://blog.youkuaiyun.com/chenbingzhao/article/details/54317471</guid><author>chenbingzhao</author><pubDate>Tue, 10 Jan 2017 20:54:07 +0800</pubDate><description><![CDATA[类A继承类B，创建类A对象需要先调用父类B的构造函数，再调用子类A的构造函数。创建子类对象时的构造原则：
    1. 如果子类没有定义构造方法，则调用父类的无参数的构造方法。
    2. 如果子类定义了构造方法，不论是无参数还是带参数，在创建子类的对象的时候,首先执行父类无参数的构造方法，然后执行自己的构造方法。
    3. 如果子类的构造函数没有显示调用父类的构造函数，则会调用父类的]]></description><category></category></item></channel></rss>