Skip to content

Commit 94e98bc

Browse files
committed
Merge pull request cocos2d#2481 from pandamicro/develop
cocos2d-js#1161: Fix MenuItemSprite's automatic init logic
2 parents 5e0afd7 + ec15593 commit 94e98bc

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

cocos2d/menus/CCMenu.js

+11-3
Original file line numberDiff line numberDiff line change
@@ -466,6 +466,7 @@ cc.Menu = cc.Layer.extend(/** @lends cc.Menu# */{
466466
if (target._selectedItem) {
467467
target._state = cc.MENU_STATE_TRACKING_TOUCH;
468468
target._selectedItem.selected();
469+
target._selectedItem.setNodeDirty();
469470
return true;
470471
}
471472
return false;
@@ -480,6 +481,7 @@ cc.Menu = cc.Layer.extend(/** @lends cc.Menu# */{
480481
if (target._selectedItem) {
481482
target._selectedItem.unselected();
482483
target._selectedItem.activate();
484+
target._selectedItem.setNodeDirty();
483485
}
484486
target._state = cc.MENU_STATE_WAITING;
485487
},
@@ -490,8 +492,10 @@ cc.Menu = cc.Layer.extend(/** @lends cc.Menu# */{
490492
cc.log("cc.Menu.onTouchCancelled(): invalid state");
491493
return;
492494
}
493-
if (this._selectedItem)
495+
if (this._selectedItem) {
494496
target._selectedItem.unselected();
497+
target._selectedItem.setNodeDirty();
498+
}
495499
target._state = cc.MENU_STATE_WAITING;
496500
},
497501

@@ -503,11 +507,15 @@ cc.Menu = cc.Layer.extend(/** @lends cc.Menu# */{
503507
}
504508
var currentItem = target._itemForTouch(touch);
505509
if (currentItem != target._selectedItem) {
506-
if (target._selectedItem)
510+
if (target._selectedItem) {
507511
target._selectedItem.unselected();
512+
target._selectedItem.setNodeDirty();
513+
}
508514
target._selectedItem = currentItem;
509-
if (target._selectedItem)
515+
if (target._selectedItem) {
510516
target._selectedItem.selected();
517+
target._selectedItem.setNodeDirty();
518+
}
511519
}
512520
},
513521

cocos2d/menus/CCMenuItem.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -740,9 +740,9 @@ cc.MenuItemSprite = cc.MenuItem.extend(/** @lends cc.MenuItemSprite# */{
740740
} else if (four !== undefined && cc.isFunction(three)) {
741741
target = four;
742742
callback = three;
743-
disabledImage = new cc.Sprite(selectedSprite);
743+
disabledImage = new cc.Sprite(selectedSprite.getTexture(), selectedSprite.getTextureRect());
744744
} else if (three === undefined) {
745-
disabledImage = new cc.Sprite(selectedSprite);
745+
disabledImage = new cc.Sprite(selectedSprite.getTexture(), selectedSprite.getTextureRect());
746746
}
747747
this.initWithNormalSprite(normalSprite, selectedSprite, disabledImage, callback, target);
748748
}

0 commit comments

Comments
 (0)