3.1骨骼动画添加Shader问题

3.1的骨骼动画直接设置Shader似乎没有效果,我按照论坛里某人提供的方法,给它的所有子节点设置shader,但是这样设置以后,骨骼动画的位置和大小都不正确了,我研究了一下,发现似乎是每个元件的缩放和位置的变换都被执行了两遍,我给armature设置了scale 0.5,加上shader以后,每个元件都变成了原来大小的1/4,位置也是因此发生了偏差,求解决。

你解决没有?

grayArmature:function(armature){
var locBoneDic = armature.getBoneDic();
for (var key in locBoneDic) {
var bone = locBoneDic;
var detector = bone.getColliderDetector();

    if (bone && bone.getDisplayRenderNode) {
        var node = bone.getDisplayRenderNode();
        this.graySprite(node);
    }

    if(!detector)
        continue;
    var bodyList = detector.getColliderBodyList();
    for (var i = 0; i < bodyList.length; i++) {
        var body = bodyList*;
    }
}

},graySprite:function(sprite)
{
if( ‘opengl’ in cc.sys.capabilities ) {
if(sprite)
{
var shader = new cc.GLProgram();//cc.GLProgram.create(“gray.vsh”, “gray.fsh”);
shader.retain();
shader.init(this.vsh,this.fsh);
shader.addAttribute(cc.ATTRIBUTE_NAME_POSITION, cc.VERTEX_ATTRIB_POSITION);
shader.addAttribute(cc.ATTRIBUTE_NAME_COLOR, cc.VERTEX_ATTRIB_COLOR);
shader.addAttribute(cc.ATTRIBUTE_NAME_TEX_COORD, cc.VERTEX_ATTRIB_TEX_COORDS);

    shader.link();
    shader.updateUniforms();
    sprite.setShaderProgram(shader);
}    
}

}

骨骼必须每一个取出来绘制*