@@ -154,14 +154,14 @@ cc.EditBoxDelegate = cc.Class.extend({
154154 * This method is called when an edit box gains focus after keyboard is shown.
155155 * @param {cc.EditBox } sender
156156 */
157- editBoxEditingDidBegan : function ( sender ) {
157+ editBoxEditingDidBegin : function ( sender ) {
158158 } ,
159159
160160 /**
161161 * This method is called when an edit box loses focus after keyboard is hidden.
162162 * @param {cc.EditBox } sender
163163 */
164- editBoxEditingDidEnded : function ( sender ) {
164+ editBoxEditingDidEnd : function ( sender ) {
165165 } ,
166166
167167 /**
@@ -176,7 +176,7 @@ cc.EditBoxDelegate = cc.Class.extend({
176176 * This method is called when the return button was pressed.
177177 * @param {cc.EditBox } sender
178178 */
179- editBoxEditingReturn : function ( sender ) {
179+ editBoxReturn : function ( sender ) {
180180 }
181181} ) ;
182182
@@ -219,6 +219,8 @@ cc.EditBox = cc.Node.extend({
219219 _placeholderFontSize : 14 ,
220220 _placeholderColor : null ,
221221 _className : 'EditBox' ,
222+ _touchListener : null ,
223+ _touchEnabled : true ,
222224
223225 /**
224226 * constructor of cc.EditBox
@@ -238,16 +240,29 @@ cc.EditBox = cc.Node.extend({
238240 this . createDomElementIfNeeded ( ) ;
239241 this . initWithSizeAndBackgroundSprite ( size , normal9SpriteBg ) ;
240242
241- cc . eventManager . addListener ( {
243+ this . _touchListener = cc . EventListener . create ( {
242244 event : cc . EventListener . TOUCH_ONE_BY_ONE ,
243245 swallowTouches : true ,
244246 onTouchBegan : this . _onTouchBegan . bind ( this ) ,
245247 onTouchEnded : this . _onTouchEnded . bind ( this )
246- } , this ) ;
248+ } ) ;
249+ cc . eventManager . addListener ( this . _touchListener , this ) ;
247250
248251 this . setInputFlag ( this . _editBoxInputFlag ) ;
249252 } ,
250253
254+ setTouchEnabled : function ( enable ) {
255+ if ( this . _touchEnabled === enable ) {
256+ return ;
257+ }
258+ this . _touchEnabled = enable ;
259+ if ( this . _touchEnabled ) {
260+ cc . eventManager . addListener ( this . _touchListener , this ) ;
261+ } else {
262+ cc . eventManager . removeListener ( this . _touchListener ) ;
263+ }
264+ } ,
265+
251266 _createRenderCmd : function ( ) {
252267 if ( cc . _renderType === cc . game . RENDER_TYPE_CANVAS ) {
253268 return new cc . EditBox . CanvasRenderCmd ( this ) ;
@@ -317,7 +332,21 @@ cc.EditBox = cc.Node.extend({
317332 this . _renderCmd . _removeDomFromGameContainer ( ) ;
318333 } ,
319334
335+ _isAncestorsVisible : function ( node ) {
336+ if ( null == node )
337+ return true ;
338+
339+ var parent = node . getParent ( ) ;
340+
341+ if ( parent && ! parent . isVisible ( ) )
342+ return false ;
343+ return this . _isAncestorsVisible ( parent ) ;
344+ } ,
345+
320346 _onTouchBegan : function ( touch ) {
347+ if ( ! this . isVisible ( ) || ! this . _isAncestorsVisible ( this ) ) {
348+ return ;
349+ }
321350 var touchPoint = touch . getLocation ( ) ;
322351 var bb = cc . rect ( 0 , 0 , this . _contentSize . width , this . _contentSize . height ) ;
323352 var hitted = cc . rectContainsPoint ( bb , this . convertToNodeSpace ( touchPoint ) ) ;
@@ -331,6 +360,9 @@ cc.EditBox = cc.Node.extend({
331360 } ,
332361
333362 _onTouchEnded : function ( ) {
363+ if ( ! this . isVisible ( ) || ! this . _isAncestorsVisible ( this ) ) {
364+ return ;
365+ }
334366 this . _renderCmd . _beginEditing ( ) ;
335367 } ,
336368
@@ -871,8 +903,8 @@ cc.EditBox.create = function (size, normal9SpriteBg, press9SpriteBg, disabled9Sp
871903 thisPointer . _updateDomTextCases ( ) ;
872904
873905 thisPointer . _endEditing ( ) ;
874- if ( editBox . _delegate && editBox . _delegate . editBoxEditingReturn ) {
875- editBox . _delegate . editBoxEditingReturn ( editBox ) ;
906+ if ( editBox . _delegate && editBox . _delegate . editBoxReturn ) {
907+ editBox . _delegate . editBoxReturn ( editBox ) ;
876908 }
877909 cc . _canvas . focus ( ) ;
878910 }
@@ -888,17 +920,17 @@ cc.EditBox.create = function (size, normal9SpriteBg, press9SpriteBg, disabled9Sp
888920 thisPointer . _onFocusOnMobile ( editBox ) ;
889921 }
890922
891- if ( editBox . _delegate && editBox . _delegate . editBoxEditingDidBegan ) {
892- editBox . _delegate . editBoxEditingDidBegan ( editBox ) ;
923+ if ( editBox . _delegate && editBox . _delegate . editBoxEditingDidBegin ) {
924+ editBox . _delegate . editBoxEditingDidBegin ( editBox ) ;
893925 }
894926 } ) ;
895927 tmpEdTxt . addEventListener ( 'blur' , function ( ) {
896928 var editBox = thisPointer . _editBox ;
897929 editBox . _text = this . value ;
898930 thisPointer . _updateDomTextCases ( ) ;
899931
900- if ( editBox . _delegate && editBox . _delegate . editBoxEditingDidEnded ) {
901- editBox . _delegate . editBoxEditingDidEnded ( editBox ) ;
932+ if ( editBox . _delegate && editBox . _delegate . editBoxEditingDidEnd ) {
933+ editBox . _delegate . editBoxEditingDidEnd ( editBox ) ;
902934 }
903935
904936 if ( this . value === '' ) {
@@ -962,8 +994,8 @@ cc.EditBox.create = function (size, normal9SpriteBg, press9SpriteBg, disabled9Sp
962994 thisPointer . _onFocusOnMobile ( editBox ) ;
963995 }
964996
965- if ( editBox . _delegate && editBox . _delegate . editBoxEditingDidBegan ) {
966- editBox . _delegate . editBoxEditingDidBegan ( editBox ) ;
997+ if ( editBox . _delegate && editBox . _delegate . editBoxEditingDidBegin ) {
998+ editBox . _delegate . editBoxEditingDidBegin ( editBox ) ;
967999 }
9681000
9691001 } ) ;
@@ -973,8 +1005,8 @@ cc.EditBox.create = function (size, normal9SpriteBg, press9SpriteBg, disabled9Sp
9731005 if ( e . keyCode === cc . KEY . enter ) {
9741006 e . stopPropagation ( ) ;
9751007
976- if ( editBox . _delegate && editBox . _delegate . editBoxEditingReturn ) {
977- editBox . _delegate . editBoxEditingReturn ( editBox ) ;
1008+ if ( editBox . _delegate && editBox . _delegate . editBoxReturn ) {
1009+ editBox . _delegate . editBoxReturn ( editBox ) ;
9781010 }
9791011 }
9801012 } ) ;
@@ -983,8 +1015,8 @@ cc.EditBox.create = function (size, normal9SpriteBg, press9SpriteBg, disabled9Sp
9831015 editBox . _text = this . value ;
9841016 thisPointer . _updateDomTextCases ( ) ;
9851017
986- if ( editBox . _delegate && editBox . _delegate . editBoxEditingDidEnded ) {
987- editBox . _delegate . editBoxEditingDidEnded ( editBox ) ;
1018+ if ( editBox . _delegate && editBox . _delegate . editBoxEditingDidEnd ) {
1019+ editBox . _delegate . editBoxEditingDidEnd ( editBox ) ;
9881020 }
9891021
9901022 if ( this . value === '' ) {
0 commit comments