|
75 | 75 | var locChildren = this._node._children;
|
76 | 76 | for (var i = 0, len = locChildren.length; i< len; i++) {
|
77 | 77 | var selBone = locChildren[i];
|
| 78 | + var boneCmd = selBone._renderCmd; |
78 | 79 | if (selBone && selBone.getDisplayRenderNode) {
|
79 | 80 | var selNode = selBone.getDisplayRenderNode();
|
80 | 81 | if (selNode && selNode._renderCmd){
|
81 | 82 | var cmd = selNode._renderCmd;
|
82 | 83 | cmd.transform(null); //must be null, use transform in armature mode
|
83 | 84 |
|
84 | 85 | //update displayNode's color and opacity, because skin didn't call visit()
|
| 86 | + var flags = cc.Node._dirtyFlags, locFlag = cmd._dirtyFlag, boneFlag = boneCmd._dirtyFlag; |
| 87 | + var colorDirty = boneFlag & flags.colorDirty, |
| 88 | + opacityDirty = boneFlag & flags.opacityDirty; |
| 89 | + if (colorDirty) |
| 90 | + boneCmd._updateDisplayColor(); |
| 91 | + if (opacityDirty) |
| 92 | + boneCmd._updateDisplayOpacity(); |
| 93 | + if (colorDirty || opacityDirty) |
| 94 | + boneCmd._updateColor(); |
| 95 | + |
85 | 96 | var parentColor = selBone._renderCmd._displayedColor, parentOpacity = selBone._renderCmd._displayedOpacity;
|
86 |
| - var flags = cc.Node._dirtyFlags, locFlag = cmd._dirtyFlag; |
87 |
| - var colorDirty = locFlag & flags.colorDirty, |
88 |
| - opacityDirty = locFlag & flags.opacityDirty; |
89 |
| - if(colorDirty) |
| 97 | + colorDirty = locFlag & flags.colorDirty; |
| 98 | + opacityDirty = locFlag & flags.opacityDirty; |
| 99 | + if (colorDirty) |
90 | 100 | cmd._updateDisplayColor(parentColor);
|
91 |
| - if(opacityDirty) |
| 101 | + if (opacityDirty) |
92 | 102 | cmd._updateDisplayOpacity(parentOpacity);
|
| 103 | + if (colorDirty || opacityDirty) { |
| 104 | + cmd._updateColor(); |
| 105 | + } |
93 | 106 | }
|
94 | 107 | }
|
95 | 108 | }
|
|
120 | 133 | if (null === selNode)
|
121 | 134 | continue;
|
122 | 135 |
|
| 136 | + var boneCmd = selBone._renderCmd; |
| 137 | + boneCmd._syncStatus(this); |
123 | 138 | switch (selBone.getDisplayRenderNodeType()) {
|
124 | 139 | case ccs.DISPLAY_TYPE_SPRITE:
|
125 |
| - if(selNode instanceof ccs.Skin) |
126 |
| - this.updateChildPosition(selNode, selBone, alphaPremultiplied, alphaNonPremultipled); |
| 140 | + selNode.visit(boneCmd); |
127 | 141 | break;
|
128 | 142 | case ccs.DISPLAY_TYPE_ARMATURE:
|
129 | 143 | selNode._renderCmd.rendering(ctx, scaleX, scaleY);
|
130 | 144 | break;
|
131 | 145 | default:
|
132 |
| - selNode.visit(this); |
| 146 | + selNode.visit(boneCmd); |
133 | 147 | break;
|
134 | 148 | }
|
135 | 149 | } else if(selBone instanceof cc.Node) {
|
136 | 150 | this._visitNormalChild(selBone);
|
137 |
| - //selBone.visit(this); |
| 151 | + // selBone.visit(this); |
138 | 152 | }
|
139 | 153 | }
|
140 | 154 | };
|
141 | 155 |
|
142 | 156 | proto._visitNormalChild = function(childNode){
|
143 |
| - if(childNode == null) |
| 157 | + if (!childNode) |
144 | 158 | return;
|
145 | 159 |
|
146 | 160 | var cmd = childNode._renderCmd;
|
|
181 | 195 | if (!node._visible)
|
182 | 196 | return;
|
183 | 197 |
|
184 |
| - this.updateStatus(parentCmd); |
| 198 | + this._syncStatus(parentCmd); |
185 | 199 | node.sortAllChildren();
|
186 | 200 |
|
187 | 201 | cc.renderer.pushRenderCommand(this._startRenderCmd);
|
|
0 commit comments