OSDN Git Service

Version 0.6.158, fix X.Net.JSONP.
[pettanr/clientJs.git] / 0.6.x / js / 06_net / 04_XNetImage.js
index f788116..0375e74 100644 (file)
@@ -10,31 +10,28 @@ var X_Net_Image_hasImage  = !!window[ 'Image' ],
        X_Net_Image_image     = X_Net_Image_hasImage && new Image(),\r
        // IE では厳密には HTMLImageElement ではなく、appendChild してもサイズが取れず、removeChild に失敗する\r
        X_Net_Image_isElement = !( X_UA[ 'IE' ] < 9 ) && X_Type_isHTMLElement( X_Net_Image_image );\r
-       \r
-\r
-if( !X_Net_Image_hasImage ){\r
-       alert( 'no Image!' );\r
-} else\r
-if( X_Net_Image_isElement ){\r
-       //alert( 'X_Net_Image_isElement ' + X_Net_Image_isElement );\r
-};\r
 \r
 /*\r
  * TODO\r
  * new Image() のときに Image オブジェクトを作るもの(IE8-)と、HTMLImageElement を作るものがある。\r
  * Image は、X.EventDispatcher で、<img> は X.Node で。 \r
- * \r
- * Opera7 では毎回 image を作る必要あり、src が異なればOK?\r
  */\r
 \r
 X_TEMP.X_NET_Image_init = function(){\r
+       X_NET_ImageWrapper = X_Class_override(\r
+               X_Net_Image_isElement ? Node( X_Net_Image_image ) : X_EventDispatcher( X_Net_Image_image ),\r
+               X_TEMP.X_NET_Image_params\r
+       );\r
+       \r
+       X_NET_ImageWrapper[ 'listen' ]( [ 'load', 'error' /*, 'abort'*/, X_EVENT_KILL_INSTANCE ], X_NET_Image_handleEvent );\r
+       \r
+       delete X_TEMP.X_NET_Image_init;\r
+       delete X_TEMP.X_NET_Image_params;       \r
+       \r
+       return X_NET_ImageWrapper;\r
+};\r
 \r
-delete X_TEMP.X_NET_Image_init;\r
-\r
-X_NET_ImageWrapper = X_Class_override(\r
-       !X_Net_Image_isElement ? X_EventDispatcher( X_Net_Image_image ) : Node( X_Net_Image_image ),\r
-       {\r
-\r
+X_TEMP.X_NET_Image_params = {\r
                _busy      : false,\r
                tick       : 0,\r
                timerID    : 0,\r
@@ -59,8 +56,9 @@ X_NET_ImageWrapper = X_Class_override(
                },\r
                \r
                cancel : function(){\r
+                       var raw = this[ '_rawObject' ];\r
                        // abort がある?\r
-                       this[ '_rawObject' ] && this[ '_rawObject' ].abort && this[ '_rawObject' ].abort();\r
+                       raw && raw.abort && raw.abort();\r
                        // this[ '_rawObject' ].src = '';\r
                        this._busy  = false;\r
                        this.finish = true;\r
@@ -75,21 +73,16 @@ X_NET_ImageWrapper = X_Class_override(
                        this.finished = false;\r
                        this.abspath  = '';\r
                }\r
-       }\r
-);\r
-\r
-X_NET_ImageWrapper[ 'listen' ]( [ 'load', 'error' /*, 'abort'*/, X_EVENT_KILL_INSTANCE ], X_NET_Image_handleEvent );\r
-\r
-return X_NET_ImageWrapper;\r
-\r
-};\r
+       };\r
 \r
 function X_NET_Image_detect(){\r
+       var raw = this[ '_rawObject' ];\r
+       \r
        if( this.finish ) return;\r
-       if( this[ '_rawObject' ] && this[ '_rawObject' ].complete ){\r
+       if( raw && raw.complete ){\r
                this._busy  = false;\r
                this.finish = true;\r
-               if( this[ '_rawObject' ].width ) return;\r
+               if( raw.width ) return;\r
                X_Timer_remove( this.timerID );\r
                this.timerID = this[ 'asyncDispatch' ]( X_EVENT_ERROR );\r
        } else\r