|
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