var _self=this; //这是一个cc.Sprite
var spriteSize = _self.getContentSize();
var renderTexture = new cc.RenderTexture(spriteSize.width, spriteSize.height, cc.PIXEL_FORMAT_RGBA8888, gl.DEPTH24_STENCIL8_OES);
renderTexture.beginWithClear(0, 0, 0, 0);
//renderTexture.begin();
_self.visit();
var colors=new Uint8Array(4);
gl.readPixels(pos.x, pos.y, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE,colors );
console.log(colors);
renderTexture.end();
上面的代码无法获取正确的颜色值,原因是因为cocos2dx 底层在3.x以后改为队列模式渲染了,当visit的时候根本就只是将这个动作放在要做的事情队列里面,当end后不知道什么时候处理一下。所以获取不到图。有谁在js方面解决了这个问题,麻烦分享下经验吧。