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
},\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
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