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");