@@ -467,11 +467,11 @@ ccui.Scale9Sprite = cc.Node.extend(/** @lends ccui.Scale9Sprite# */{
467
467
if ( ! locLoaded ) {
468
468
texture . addEventListener ( "load" , function ( sender ) {
469
469
// the texture is rotated on Canvas render mode, so isRotated always is false.
470
- var preferredSize = this . _preferredSize ;
471
- preferredSize = cc . size ( preferredSize . width , preferredSize . height ) ;
470
+ var preferredSize = this . _preferredSize , restorePreferredSize = preferredSize . width !== 0 && preferredSize . height !== 0 ;
471
+ if ( restorePreferredSize ) preferredSize = cc . size ( preferredSize . width , preferredSize . height ) ;
472
472
var size = sender . getContentSize ( ) ;
473
473
this . updateWithBatchNode ( this . _scale9Image , cc . rect ( 0 , 0 , size . width , size . height ) , false , this . _capInsets ) ;
474
- this . setPreferredSize ( preferredSize ) ;
474
+ if ( restorePreferredSize ) this . setPreferredSize ( preferredSize ) ;
475
475
this . _positionsAreDirty = true ;
476
476
this . dispatchEvent ( "load" ) ;
477
477
} , this ) ;
@@ -500,10 +500,10 @@ ccui.Scale9Sprite = cc.Node.extend(/** @lends ccui.Scale9Sprite# */{
500
500
if ( ! locLoaded ) {
501
501
spriteFrame . addEventListener ( "load" , function ( sender ) {
502
502
// the texture is rotated on Canvas render mode, so isRotated always is false.
503
- var preferredSize = this . _preferredSize ;
504
- preferredSize = cc . size ( preferredSize . width , preferredSize . height ) ;
503
+ var preferredSize = this . _preferredSize , restorePreferredSize = preferredSize . width !== 0 && preferredSize . height !== 0 ;
504
+ if ( restorePreferredSize ) preferredSize = cc . size ( preferredSize . width , preferredSize . height ) ;
505
505
this . updateWithBatchNode ( this . _scale9Image , sender . getRect ( ) , cc . _renderType === cc . _RENDER_TYPE_WEBGL && sender . isRotated ( ) , this . _capInsets ) ;
506
- this . setPreferredSize ( preferredSize ) ;
506
+ if ( restorePreferredSize ) this . setPreferredSize ( preferredSize ) ;
507
507
this . _positionsAreDirty = true ;
508
508
this . dispatchEvent ( "load" ) ;
509
509
} , this ) ;
@@ -900,10 +900,10 @@ ccui.Scale9Sprite = cc.Node.extend(/** @lends ccui.Scale9Sprite# */{
900
900
if ( ! locLoaded ) {
901
901
spriteFrame . addEventListener ( "load" , function ( sender ) {
902
902
// the texture is rotated on Canvas render mode, so isRotated always is false.
903
- var preferredSize = this . _preferredSize ;
904
- preferredSize = cc . size ( preferredSize . width , preferredSize . height ) ;
903
+ var preferredSize = this . _preferredSize , restorePreferredSize = preferredSize . width !== 0 && preferredSize . height !== 0 ;
904
+ if ( restorePreferredSize ) preferredSize = cc . size ( preferredSize . width , preferredSize . height ) ;
905
905
this . updateWithBatchNode ( this . _scale9Image , sender . getRect ( ) , cc . _renderType === cc . _RENDER_TYPE_WEBGL && sender . isRotated ( ) , this . _capInsets ) ;
906
- this . setPreferredSize ( preferredSize ) ;
906
+ if ( restorePreferredSize ) this . setPreferredSize ( preferredSize ) ;
907
907
this . _positionsAreDirty = true ;
908
908
this . dispatchEvent ( "load" ) ;
909
909
} , this ) ;
0 commit comments