svnno****@sourc*****
svnno****@sourc*****
2010年 5月 23日 (日) 19:43:39 JST
Revision: 1839 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1839 Author: dhrname Date: 2010-05-23 19:43:39 +0900 (Sun, 23 May 2010) Log Message: ----------- Modified Paths: -------------- branches/ufltima/dom/svg.js Modified: branches/ufltima/dom/svg.js =================================================================== --- branches/ufltima/dom/svg.js 2010-05-23 10:27:41 UTC (rev 1838) +++ branches/ufltima/dom/svg.js 2010-05-23 10:43:39 UTC (rev 1839) @@ -1286,8 +1286,12 @@ return this; } GetSVGDocument.prototype = { + /*_initメソッド + *object(embed)要素で指定されたSVG文書を読み込んで、SVGを処理して表示させるメソッド + */ _init : function() { - var xmlhttp = NAIBU.xmlhttp, objei = this._tar, thistar = this; //objeiはobject要素かembed要素 + /*objeiはobject要素かembed要素*/ + var xmlhttp = NAIBU.xmlhttp, objei = this._tar, thistar = this; xmlhttp.open("GET", objei.getAttribute("data"), true); xmlhttp.setRequestHeader("X-Requested-With", "XMLHttpRequest"); xmlhttp.onreadystatechange = function() { @@ -1295,7 +1299,7 @@ /*responseXMLを使うと、時々、空のデータを返すことがあるため(原因は不明)、 *ここでは、responseTextを用いる */ - var doc = NAIBU.document; + var doc = new ActiveXObject("MSXML2.DomDocument"); var dew = new Date(); str = xmlhttp.responseText.replace(/!DOCTYPE/,"!--").replace(/(dtd">|\]>)/,"-->"); doc.loadXML(str); @@ -1316,10 +1320,12 @@ } var fi = doc.documentElement.firstChild, n; var attr = doc.documentElement.attributes, att; - for (var i=0,atli=attr.length;i<atli;++i) { //ルート要素のNamedNodeMapを検索する + /*ルート要素のNamedNodeMapを検索する*/ + for (var i=0,atli=attr.length;i<atli;++i) { att = s.importNode(attr[i], false); tar.setAttributeNodeNS(att); } + doc = str = attr = null; var sdt = tar._tar, sp = document.createElement("div"), dcp = document.createElement("v:group"); dcp.style.width = tar.width.baseVal.value+ "px"; dcp.style.height = tar.height.baseVal.value+ "px"; @@ -1332,6 +1338,7 @@ tar.appendChild(n); fi = fi.nextSibling; } + fi = null; /*以下では、VMLの要素とHTMLのCSSのプロパティを用いて、背景を *作り出す作業を行う。これは必須 */ @@ -1348,20 +1355,21 @@ var tpstyle = objei.style; trstyle.visibility = "visible"; trstyle.position = "absolute"; - //以下、画像を切り取り + /*以下、画像を切り取り*/ trstyle.overflow = "hidden"; var backrs = backr.currentStyle; - var viewWidth = w > sw ? sw : w, viewHeight = h > sh ? sh : h; //ウィンドウ枠の長さを決定する + /*ウィンドウ枠の長さを決定する*/ + var viewWidth = w > sw ? sw : w, viewHeight = h > sh ? sh : h; var bfl = parseFloat(backrs.left), bft = parseFloat(backrs.top); var bl = -tar._tx, bt = -tar._ty; var backright = bl + viewWidth + 1; var backdown = bt + viewHeight + 1; trstyle.clip = "rect(" +bt+ "px " +backright+ "px " +backdown+ "px " +bl+ "px)"; alert((new Date()).getTime() - dew.getTime()); - doc = str = fi = attr = null; if (thistar._next) { thistar._next._init(); } else { + /*全要素の読み込みが終了した場合*/ } } }; @@ -1376,7 +1384,7 @@ */ function SVGStyleElement() { SVGElement.apply(this, arguments); - //以下はそれぞれ、属性の値に対応している + /*以下はそれぞれ、属性の値に対応している*/ /*DOMString*/ this.xmlspace; /*DOMString*/ this.type = "text/css"; /*DOMString*/ this.media; @@ -1395,7 +1403,7 @@ return this; }; SVGPoint.prototype.matrixTransform = function(/*SVGMatrix*/ matrix ) { - //整数にしているのは、VMLの設計上、小数点を扱えないときがあるため + /*整数にしているのは、VMLの設計上、小数点を扱えないときがあるため*/ var x = parseInt(matrix.a * this.x + matrix.c * this.y + matrix.e, 10); var y = parseInt(matrix.b * this.x + matrix.d * this.y + matrix.f, 10); if (-1 < x && x < 1) {x=1;} @@ -3849,7 +3857,6 @@ } } NAIBU.xmlhttp = xmlhttp; - NAIBU.document = new ActiveXObject("MSXML2.DomDocument"); if (!document.namespaces["v"]) { document.namespaces.add("v","urn:schemas-microsoft-com:vml"); document.namespaces.add("o","urn:schemas-microsoft-com:office:office");