svnno****@sourc*****
svnno****@sourc*****
2011年 6月 22日 (水) 20:32:35 JST
Revision: 2791
http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2791
Author: dhrname
Date: 2011-06-22 20:32:35 +0900 (Wed, 22 Jun 2011)
Log Message:
-----------
0.81 module trunk
Modified Paths:
--------------
trunk/org/w3c/core.js
trunk/org/w3c/dom/svg.js
Property Changed:
----------------
trunk/org/
trunk/org/w3c/
trunk/org/w3c/core.js
trunk/org/w3c/dom/css.js
trunk/org/w3c/dom/events.js
trunk/org/w3c/dom/svg.js
Property changes on: trunk/org
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/06x/061/org:1864-2067
/branches/06x/062/org:2071-2106
/branches/06x/063/org:2110-2146
/branches/06x/064/org:2149-2177
/branches/06x/065/org:2179-2209
/branches/06x/066/org:2211-2236
/branches/06x/067/org:2257-2282
/branches/06x/068/org:2284-2314
/branches/06x/069/org:2317-2352
/branches/06x/org:1861-2353
/branches/07x/070/org:2363-2383
/branches/07x/071/org:2385-2433
/branches/07x/072/org:2435-2474
/branches/07x/073/org:2476-2509
/branches/07x/074/org:2511-2556
/branches/07x/075/org:2558-2597
/branches/07x/076/org:2600-2631,2642
/branches/07x/077/org:2635-2677
/branches/07x/078/org:2679-2726
/branches/07x/079/org:2728-2745
/branches/07x/org:2356-2753
/branches/07x/org/org:2643
+ /branches/06x/061/org:1864-2067
/branches/06x/062/org:2071-2106
/branches/06x/063/org:2110-2146
/branches/06x/064/org:2149-2177
/branches/06x/065/org:2179-2209
/branches/06x/066/org:2211-2236
/branches/06x/067/org:2257-2282
/branches/06x/068/org:2284-2314
/branches/06x/069/org:2317-2352
/branches/06x/org:1861-2353
/branches/07x/070/org:2363-2383
/branches/07x/071/org:2385-2433
/branches/07x/072/org:2435-2474
/branches/07x/073/org:2476-2509
/branches/07x/074/org:2511-2556
/branches/07x/075/org:2558-2597
/branches/07x/076/org:2600-2631,2642
/branches/07x/077/org:2635-2677
/branches/07x/078/org:2679-2726
/branches/07x/079/org:2728-2745
/branches/07x/org:2356-2753
/branches/07x/org/org:2643
/branches/08x/080/org:2758-2785
/branches/08x/org:2755-2790
Property changes on: trunk/org/w3c
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/06x/061/org/w3c:1864-2067
/branches/06x/062/org/w3c:2071-2106
/branches/06x/063/org/w3c:2110-2146
/branches/06x/064/org/w3c:2149-2177
/branches/06x/065/org/w3c:2179-2209
/branches/06x/066/org/w3c:2211-2236
/branches/06x/067/org/w3c:2257-2282
/branches/06x/068/org/w3c:2284-2314
/branches/06x/069/org/w3c:2317-2352
/branches/06x/org/w3c:1861-2353
/branches/07x/070/org/w3c:2363-2383
/branches/07x/071/org/w3c:2385-2433
/branches/07x/072/org/w3c:2435-2474
/branches/07x/073/org/w3c:2476-2509
/branches/07x/074/org/w3c:2511-2556
/branches/07x/075/org/w3c:2558-2597
/branches/07x/076/org/w3c:2600-2631,2642
/branches/07x/077/org/w3c:2635-2677
/branches/07x/078/org/w3c:2679-2726
/branches/07x/079/org/w3c:2728-2745
/branches/07x/org/org/w3c:2643
/branches/07x/org/w3c:2356-2753
/branches/ufltima:1621-1788
+ /branches/06x/061/org/w3c:1864-2067
/branches/06x/062/org/w3c:2071-2106
/branches/06x/063/org/w3c:2110-2146
/branches/06x/064/org/w3c:2149-2177
/branches/06x/065/org/w3c:2179-2209
/branches/06x/066/org/w3c:2211-2236
/branches/06x/067/org/w3c:2257-2282
/branches/06x/068/org/w3c:2284-2314
/branches/06x/069/org/w3c:2317-2352
/branches/06x/org/w3c:1861-2353
/branches/07x/070/org/w3c:2363-2383
/branches/07x/071/org/w3c:2385-2433
/branches/07x/072/org/w3c:2435-2474
/branches/07x/073/org/w3c:2476-2509
/branches/07x/074/org/w3c:2511-2556
/branches/07x/075/org/w3c:2558-2597
/branches/07x/076/org/w3c:2600-2631,2642
/branches/07x/077/org/w3c:2635-2677
/branches/07x/078/org/w3c:2679-2726
/branches/07x/079/org/w3c:2728-2745
/branches/07x/org/org/w3c:2643
/branches/07x/org/w3c:2356-2753
/branches/08x/080/org/w3c:2758-2785
/branches/08x/org/w3c:2755-2790
/branches/ufltima:1621-1788
Modified: trunk/org/w3c/core.js
===================================================================
--- trunk/org/w3c/core.js 2011-06-22 11:28:22 UTC (rev 2790)
+++ trunk/org/w3c/core.js 2011-06-22 11:32:35 UTC (rev 2791)
@@ -958,7 +958,7 @@
}
}
if (isSpecified) {
- ele = new (ti[namespaceURI][localName]);
+ ele = new (ti[namespaceURI][localName])(this._document_);
} else {
ele = new Element();
}
@@ -970,6 +970,7 @@
ti = namespaceURI = qualifiedName = prefix = localName = isSpecified = null;
return ele;
};
+Document.prototype._document_ = document
/*createAttributeNSメソッド
*属性ノードを作る。setAttributeNSで使うため、削除不可
*/
Property changes on: trunk/org/w3c/core.js
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/06x/061/org/w3c/core.js:1864-2067
/branches/06x/062/org/w3c/core.js:2071-2106
/branches/06x/063/org/w3c/core.js:2110-2146
/branches/06x/064/org/w3c/core.js:2149-2177
/branches/06x/065/org/w3c/core.js:2179-2209
/branches/06x/066/org/w3c/core.js:2211-2244
/branches/06x/067/org/w3c/core.js:2257-2282
/branches/06x/068/org/w3c/core.js:2284-2314
/branches/06x/069/org/w3c/core.js:2317-2352
/branches/06x/org/w3c/core.js:1861-2353
/branches/07x/070/org/w3c/core.js:2363-2383
/branches/07x/071/org/w3c/core.js:2385-2433
/branches/07x/072/org/w3c/core.js:2435-2474
/branches/07x/073/org/w3c/core.js:2476-2509
/branches/07x/074/org/w3c/core.js:2511-2556
/branches/07x/075/org/w3c/core.js:2558-2597
/branches/07x/076/org/w3c/core.js:2600-2631,2642
/branches/07x/077/org/w3c/core.js:2635-2677
/branches/07x/078/org/w3c/core.js:2679-2726
/branches/07x/079/org/w3c/core.js:2728-2745
/branches/07x/org/org/w3c/core.js:2643
/branches/07x/org/w3c/core.js:2356-2753
/branches/ufltima/core.js:1621-1854
+ /branches/06x/061/org/w3c/core.js:1864-2067
/branches/06x/062/org/w3c/core.js:2071-2106
/branches/06x/063/org/w3c/core.js:2110-2146
/branches/06x/064/org/w3c/core.js:2149-2177
/branches/06x/065/org/w3c/core.js:2179-2209
/branches/06x/066/org/w3c/core.js:2211-2244
/branches/06x/067/org/w3c/core.js:2257-2282
/branches/06x/068/org/w3c/core.js:2284-2314
/branches/06x/069/org/w3c/core.js:2317-2352
/branches/06x/org/w3c/core.js:1861-2353
/branches/07x/070/org/w3c/core.js:2363-2383
/branches/07x/071/org/w3c/core.js:2385-2433
/branches/07x/072/org/w3c/core.js:2435-2474
/branches/07x/073/org/w3c/core.js:2476-2509
/branches/07x/074/org/w3c/core.js:2511-2556
/branches/07x/075/org/w3c/core.js:2558-2597
/branches/07x/076/org/w3c/core.js:2600-2631,2642
/branches/07x/077/org/w3c/core.js:2635-2677
/branches/07x/078/org/w3c/core.js:2679-2726
/branches/07x/079/org/w3c/core.js:2728-2745
/branches/07x/org/org/w3c/core.js:2643
/branches/07x/org/w3c/core.js:2356-2753
/branches/08x/080/org/w3c/core.js:2758-2785
/branches/08x/org/w3c/core.js:2755-2790
/branches/ufltima/core.js:1621-1854
Property changes on: trunk/org/w3c/dom/css.js
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/06x/061/org/w3c/dom/css.js:1864-2067
/branches/06x/062/org/w3c/dom/css.js:2071-2106
/branches/06x/063/org/w3c/dom/css.js:2110-2146
/branches/06x/064/org/w3c/dom/css.js:2149-2177
/branches/06x/065/org/w3c/dom/css.js:2179-2209
/branches/06x/066/org/w3c/dom/css.js:2211-2236
/branches/06x/067/org/w3c/dom/css.js:2257-2282
/branches/06x/068/org/w3c/dom/css.js:2284-2314
/branches/06x/069/org/w3c/dom/css.js:2317-2352
/branches/06x/org/w3c/dom/css.js:1861-2353
/branches/07x/070/org/w3c/dom/css.js:2363-2383
/branches/07x/071/org/w3c/dom/css.js:2385-2433
/branches/07x/072/org/w3c/dom/css.js:2435-2474
/branches/07x/073/org/w3c/dom/css.js:2476-2509
/branches/07x/074/org/w3c/dom/css.js:2511-2556
/branches/07x/075/org/w3c/dom/css.js:2558-2597
/branches/07x/076/org/w3c/dom/css.js:2600-2631,2642
/branches/07x/077/org/w3c/dom/css.js:2635-2677
/branches/07x/078/org/w3c/dom/css.js:2679-2726
/branches/07x/079/org/w3c/dom/css.js:2728-2745
/branches/07x/org/org/w3c/dom/css.js:2643
/branches/07x/org/w3c/dom/css.js:2356-2753
/branches/ufltima/dom/css.js:1621-1855
+ /branches/06x/061/org/w3c/dom/css.js:1864-2067
/branches/06x/062/org/w3c/dom/css.js:2071-2106
/branches/06x/063/org/w3c/dom/css.js:2110-2146
/branches/06x/064/org/w3c/dom/css.js:2149-2177
/branches/06x/065/org/w3c/dom/css.js:2179-2209
/branches/06x/066/org/w3c/dom/css.js:2211-2236
/branches/06x/067/org/w3c/dom/css.js:2257-2282
/branches/06x/068/org/w3c/dom/css.js:2284-2314
/branches/06x/069/org/w3c/dom/css.js:2317-2352
/branches/06x/org/w3c/dom/css.js:1861-2353
/branches/07x/070/org/w3c/dom/css.js:2363-2383
/branches/07x/071/org/w3c/dom/css.js:2385-2433
/branches/07x/072/org/w3c/dom/css.js:2435-2474
/branches/07x/073/org/w3c/dom/css.js:2476-2509
/branches/07x/074/org/w3c/dom/css.js:2511-2556
/branches/07x/075/org/w3c/dom/css.js:2558-2597
/branches/07x/076/org/w3c/dom/css.js:2600-2631,2642
/branches/07x/077/org/w3c/dom/css.js:2635-2677
/branches/07x/078/org/w3c/dom/css.js:2679-2726
/branches/07x/079/org/w3c/dom/css.js:2728-2745
/branches/07x/org/org/w3c/dom/css.js:2643
/branches/07x/org/w3c/dom/css.js:2356-2753
/branches/08x/080/org/w3c/dom/css.js:2758-2785
/branches/08x/org/w3c/dom/css.js:2755-2790
/branches/ufltima/dom/css.js:1621-1855
Property changes on: trunk/org/w3c/dom/events.js
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/06x/061/org/w3c/dom/events.js:1864-2067
/branches/06x/062/org/w3c/dom/events.js:2071-2106
/branches/06x/063/org/w3c/dom/events.js:2110-2146
/branches/06x/064/org/w3c/dom/events.js:2149-2177
/branches/06x/065/org/w3c/dom/events.js:2179-2209
/branches/06x/066/org/w3c/dom/events.js:2211-2244
/branches/06x/067/org/w3c/dom/events.js:2257-2282
/branches/06x/068/org/w3c/dom/events.js:2284-2314
/branches/06x/069/org/w3c/dom/events.js:2317-2352
/branches/06x/org/w3c/dom/events.js:1861-2353
/branches/07x/070/org/w3c/dom/events.js:2363-2383
/branches/07x/071/org/w3c/dom/events.js:2385-2433
/branches/07x/072/org/w3c/dom/events.js:2435-2474
/branches/07x/073/org/w3c/dom/events.js:2476-2509
/branches/07x/074/org/w3c/dom/events.js:2511-2556
/branches/07x/075/org/w3c/dom/events.js:2558-2597
/branches/07x/076/org/w3c/dom/events.js:2600-2631,2642
/branches/07x/077/org/w3c/dom/events.js:2635-2677
/branches/07x/078/org/w3c/dom/events.js:2679-2726
/branches/07x/079/org/w3c/dom/events.js:2728-2745
/branches/07x/org/org/w3c/dom/events.js:2643
/branches/07x/org/w3c/dom/events.js:2356-2753
/branches/ufltima/dom/events.js:1621-1856
+ /branches/06x/061/org/w3c/dom/events.js:1864-2067
/branches/06x/062/org/w3c/dom/events.js:2071-2106
/branches/06x/063/org/w3c/dom/events.js:2110-2146
/branches/06x/064/org/w3c/dom/events.js:2149-2177
/branches/06x/065/org/w3c/dom/events.js:2179-2209
/branches/06x/066/org/w3c/dom/events.js:2211-2244
/branches/06x/067/org/w3c/dom/events.js:2257-2282
/branches/06x/068/org/w3c/dom/events.js:2284-2314
/branches/06x/069/org/w3c/dom/events.js:2317-2352
/branches/06x/org/w3c/dom/events.js:1861-2353
/branches/07x/070/org/w3c/dom/events.js:2363-2383
/branches/07x/071/org/w3c/dom/events.js:2385-2433
/branches/07x/072/org/w3c/dom/events.js:2435-2474
/branches/07x/073/org/w3c/dom/events.js:2476-2509
/branches/07x/074/org/w3c/dom/events.js:2511-2556
/branches/07x/075/org/w3c/dom/events.js:2558-2597
/branches/07x/076/org/w3c/dom/events.js:2600-2631,2642
/branches/07x/077/org/w3c/dom/events.js:2635-2677
/branches/07x/078/org/w3c/dom/events.js:2679-2726
/branches/07x/079/org/w3c/dom/events.js:2728-2745
/branches/07x/org/org/w3c/dom/events.js:2643
/branches/07x/org/w3c/dom/events.js:2356-2753
/branches/08x/080/org/w3c/dom/events.js:2758-2785
/branches/08x/org/w3c/dom/events.js:2755-2790
/branches/ufltima/dom/events.js:1621-1856
Modified: trunk/org/w3c/dom/svg.js
===================================================================
--- trunk/org/w3c/dom/svg.js 2011-06-22 11:28:22 UTC (rev 2790)
+++ trunk/org/w3c/dom/svg.js 2011-06-22 11:32:35 UTC (rev 2791)
@@ -160,10 +160,12 @@
degli,
s,
cm,
- degz;
+ degz,
+ etod = evt.target.ownerDocument.documentElement,
+ ttb = tar.transform.baseVal;
//transform属性の値を、SVGTransformListであるtransformプロパティに結びつける
for (var j=0,cli=coma.length;j<cli;j++) {
- s = evt.target.ownerDocument.documentElement.createSVGTransform();
+ s = etod.createSVGTransform();
lis = list[j],
com = coma[j];
deg = lis.match(degR);
@@ -195,9 +197,9 @@
}
}
}
- tar.transform.baseVal.appendItem(s);
+ ttb.appendItem(s);
}
- tft = degR = coma = list = a = b = c = d = e = f = lis = com = deg = rad = degli = s = cm = degz = null;
+ tft = degR = coma = list = a = b = c = d = e = f = lis = com = deg = rad = degli = s = cm = degz = etod = ttb = null;
} else if (name === "style") {
var sc = evt.newValue,
style = tar.style,
@@ -1122,9 +1124,10 @@
/*SVGSVGElement
*svg要素をあらわすオブジェクト
*/
-function SVGSVGElement() {
+function SVGSVGElement(_doc) {
SVGElement.apply(this, arguments);
- this._tar = document.createElement("v:group");
+ this._tar = _doc.createElement("v:group");
+ _doc = null;
/*_svgload_limitedはSVGLoadイベントを発火させる判定基準。
* Xlink言語が使われていない限り0であり、SVGLoadイベントが発火される*/
this._svgload_limited = 0;
@@ -1421,9 +1424,10 @@
SVGViewSpec.constructor = SVGFitToViewBox;
SVGViewSpec.prototype = new SVGFitToViewBox();
-function SVGGElement() {
+function SVGGElement(_doc) {
SVGElement.apply(this);
- this._tar = document.createElement("v:group");
+ this._tar = _doc.createElement("v:group");
+ _doc = null;
/*以下の処理は、この子要素ノードがDOMツリーに追加されて初めて、
*描画が開始されることを示す。つまり、appendChildで挿入されない限り、描画をしない。
*/
@@ -1576,9 +1580,10 @@
/*SVGElementInstance*/ SVGElementInstanceList.prototype.item = function(/*unsigned long*/ index ) {
return (this[index]);
}
-function SVGImageElement() {
+function SVGImageElement(_doc) {
SVGElement.apply(this, arguments);
- this._tar = document.createElement("v:image");
+ this._tar = _doc.createElement("v:image");
+ _doc = null;
//以下は、与えられた属性の値に対応する
/*readonly SVGAnimatedLength*/ this.x = new SVGAnimatedLength();
/*readonly SVGAnimatedLength*/ this.y = new SVGAnimatedLength();
@@ -1686,15 +1691,16 @@
*/
var dsd = new Date();
var str = this.xmlhttp.responseText,
+ _doc = document,
objei = this._tar,
s = DOMImplementation.createDocument("http://www.w3.org/2000/svg", "svg"),
tar = s.documentElement,
tview = tar.viewport,
objw, objh, fi, n, attr, att,
sdt = tar._tar,
- sp = document.createElement("div"),
- dcp = document.createElement("v:group"),
- backr = document.createElement("v:rect"),
+ sp = _doc.createElement("div"),
+ dcp = _doc.createElement("v:group"),
+ backr = _doc.createElement("v:rect"),
style, fontSize, w, h, sw, sh, trstyle, tpstyle, backrs, viewWidth, viewHeight,
bfl, bft, bl, backright, backdown, text,
_parseFloat = parseFloat,
@@ -1840,7 +1846,7 @@
}
}
s.defaultView._cache = s.defaultView._cache_ele = null;
- evt = objei = tar = tview = objw = objh = n = att = sdt = sp = dcp = backr = w = h = sw = sh = style = fontSize = null;
+ evt = _doc = objei = tar = tview = objw = objh = n = att = sdt = sp = dcp = backr = w = h = sw = sh = style = fontSize = null;
trstyle = tpstyle = backrs = viewWidth = viewHeight = text = texti = i = bfl = bft = bl = bt = backdown = backright = null;
text = _parseFloat = null;
/*IEのメモリリーク対策として、空関数を入力*/
@@ -1899,7 +1905,7 @@
/*SVGStyleElement
*style要素をあらわすオブジェクト
*/
-function SVGStyleElement() {
+function SVGStyleElement(_doc) {
SVGElement.apply(this);
LinkStyle.apply(this);
/*LinkStyleに関しては、以下の仕様を参照のこと。なお、これはSVG DOMでは継承されていないので要注意。
@@ -1927,13 +1933,13 @@
sheet = tar.sheet,
styleText = tar._text,
tod = tar.ownerDocument,
- style = document.createElement("style"),
+ style = _doc.createElement("style"),
ri, rsc, scri, rsi;
NAIBU._temp_doc = tod;
sheet = tod.styleSheets[tod.styleSheets.length] = DOMImplementation.createCSSStyleSheet(tar.title, tar.media);
sheet.ownerNode = tar;
/*以下は、IEのCSSパーサを使って、スタイルシートのルールを実装していく*/
- document.documentElement.firstChild.appendChild(style);
+ _doc.documentElement.firstChild.appendChild(style);
style.styleSheet.cssText = styleText;
for (var i=0, rules=style.styleSheet.rules, rli=rules.length;i<rli;++i) {
ri = rules[i];
@@ -2477,6 +2483,7 @@
*処理を行う。SVGPaintインターフェースをも用いる
*/
var tod = tar.ownerDocument,
+ _doc = tod._document_,
el = tar._tar,
style = tod.defaultView.getComputedStyle(tar, ""),
fill = style.getPropertyCSSValue("fill"),
@@ -2597,10 +2604,10 @@
} else if (disp && !disp._isDefault && (disp.indexOf("inline-block") === -1)) {
el.style.display = "inline-block";
}
- tod = el = fill = stroke = sp = fp = style = cursor = tar = matrix = vis = disp = num = null;
+ tod = _doc = el = fill = stroke = sp = fp = style = cursor = tar = matrix = vis = disp = num = null;
};
-function SVGPathElement() {
+function SVGPathElement(_doc) {
SVGElement.apply(this);
this._tar = _doc.createElement("v:shape");
//interface SVGAnimatedPathData
@@ -2984,7 +2991,8 @@
tt.path = dat.join(" ");
tt.coordsize = vi.width.baseVal.value + " " + vi.height.baseVal.value;
NAIBU._setPaint(tar, matrix);
- delete tar._cacheMatrix, tar._currentStyle;
+ delete tar._cacheMatrix;
+ delete tar._currentStyle;
evt = tar = dat = t = tx = ty = matrix = tlist = x = y = _parseInt = ma = mb = mc = md = me = mf = vi = isZ = isC = i = tli = tps = ti = cname = tt = null;
};
SVGPathElement.prototype._com = {
@@ -3267,9 +3275,10 @@
NAIBU.SVGPathElement = SVGPathElement; //IE8では、SVGPathElementはローカル変数
})(document, parseInt, Math);
-function SVGRectElement() {
+function SVGRectElement(_doc) {
SVGElement.apply(this);
- this._tar = document.createElement("v:shape");
+ this._tar = _doc.createElement("v:shape");
+ _doc = null;
/*readonly SVGAnimatedLength*/ this.x = new SVGAnimatedLength();
/*readonly SVGAnimatedLength*/ this.y = new SVGAnimatedLength();
/*readonly SVGAnimatedLength*/ this.width = new SVGAnimatedLength();
@@ -3357,7 +3366,8 @@
ele.path = dat;
ele.coordsize = w + " " + h;
NAIBU._setPaint(tar, ctm);
- delete tar._cacheMatrix, tar._currentStyle;
+ delete tar._cacheMatrix;
+ delete tar._currentStyle;
evt = tar = style = list = dat = ele = vi = fontSize = null;
}, false);
evt = tar = null;
@@ -3367,9 +3377,9 @@
SVGRectElement.constructor = SVGElement;
SVGRectElement.prototype = new SVGElement();
-function SVGCircleElement() {
+function SVGCircleElement(_doc) {
SVGElement.apply(this);
- this._tar = document.createElement("v:shape");
+ this._tar = _doc.createElement("v:shape");
/*readonly SVGAnimatedLength*/ this.cx = new SVGAnimatedLength();
/*readonly SVGAnimatedLength*/ this.cy = new SVGAnimatedLength();
/*readonly SVGAnimatedLength*/ this.r = new SVGAnimatedLength();
@@ -3433,7 +3443,8 @@
ele.path = dat;
ele.coordsize = w + " " + h;
NAIBU._setPaint(tar, ctm);
- delete tar._cacheMatrix, tar._currentStyle;
+ delete tar._cacheMatrix;
+ delete tar._currentStyle;
evt = tar = list = style = fontSize = dat = ele = null;
}, false);
evt = tar = null;
@@ -3443,9 +3454,10 @@
SVGCircleElement.constructor = SVGElement;
SVGCircleElement.prototype = new SVGElement();
-function SVGEllipseElement() {
+function SVGEllipseElement(_doc) {
SVGElement.apply(this);
- this._tar = document.createElement("v:shape");
+ this._tar = _doc.createElement("v:shape");
+ _doc = null;
/*readonly SVGAnimatedLength*/ this.cx = new SVGAnimatedLength();
/*readonly SVGAnimatedLength*/ this.cy = new SVGAnimatedLength();
/*readonly SVGAnimatedLength*/ this.rx = new SVGAnimatedLength();
@@ -3511,7 +3523,8 @@
ele.path = dat;
ele.coordsize = w + " " + h;
NAIBU._setPaint(tar, ctm);
- delete tar._cacheMatrix, tar._currentStyle;
+ delete tar._cacheMatrix;
+ delete tar._currentStyle;
evt = ele = tar = style = fontSize = dat = list = ctm = w = h = null;
}, false);
evt = tar = null;
@@ -3521,9 +3534,10 @@
SVGEllipseElement.constructor = SVGElement;
SVGEllipseElement.prototype = new SVGElement();
-function SVGLineElement() {
+function SVGLineElement(_doc) {
SVGElement.apply(this);
- this._tar = document.createElement("v:shape");
+ this._tar = _doc.createElement("v:shape");
+ _doc = null;
/*readonly SVGAnimatedLength*/ this.x1 = new SVGAnimatedLength();
/*readonly SVGAnimatedLength*/ this.y1 = new SVGAnimatedLength();
/*readonly SVGAnimatedLength*/ this.x2 = new SVGAnimatedLength();
@@ -3579,7 +3593,8 @@
ele.path = dat;
ele.coordsize = w + " " + h;
NAIBU._setPaint(tar, ctm);
- delete tar._cacheMatrix, tar._currentStyle;
+ delete tar._cacheMatrix;
+ delete tar._currentStyle;
evt = ele = tar = style = fontSize = dat = list = ctm = vi = w = h = null;
}, false);
evt = tar = null;
@@ -3589,9 +3604,10 @@
SVGLineElement.constructor = SVGElement;
SVGLineElement.prototype = new SVGElement();
-function SVGPolylineElement() {
+function SVGPolylineElement(_doc) {
SVGElement.apply(this);
- this._tar = document.createElement("v:shape");
+ this._tar = _doc.createElement("v:shape");
+ _doc = null;
//interface SVGAnimatedPoints
/*readonly SVGPointList*/ this.animatedPoints = this.points = new SVGPointList();
this.addEventListener("DOMAttrModified", function(evt){
@@ -3657,7 +3673,8 @@
ele.path = dat;
ele.coordsize = w + " " + h;
NAIBU._setPaint(tar, ctm);
- delete tar._cacheMatrix, tar._currentStyle;
+ delete tar._cacheMatrix;
+ delete tar._currentStyle;
evt = ele = tar = dat = list = ctm = w = h = null;
}, false);
evt = tar = null;
@@ -3667,9 +3684,10 @@
SVGPolylineElement.constructor = SVGElement;
SVGPolylineElement.prototype = new SVGElement();
-function SVGPolygonElement() {
+function SVGPolygonElement(_doc) {
SVGElement.apply(this);
- this._tar = document.createElement("v:shape");
+ this._tar = _doc.createElement("v:shape");
+ _doc = null;
//interface SVGAnimatedPoints
/*readonly SVGPointList*/ this.animatedPoints = this.points = new SVGPointList();
this.addEventListener("DOMAttrModified", function(evt){
@@ -3739,7 +3757,8 @@
ele.path = dat;
ele.coordsize = w + " " + h;
NAIBU._setPaint(tar, ctm);
- delete tar._cacheMatrix, tar._currentStyle;
+ delete tar._cacheMatrix;
+ delete tar._currentStyle;
evt = ele = tar = dat = list = ctm = w = h = null;
}, false);
evt = tar = null;
@@ -3749,7 +3768,7 @@
SVGPolygonElement.constructor = SVGElement;
SVGPolygonElement.prototype = new SVGElement();
-function SVGTextContentElement() {
+function SVGTextContentElement(_doc) {
SVGElement.apply(this);
this._list = null; //文字の位置を格納しておくリストのキャッシュ
this._length = 0; //全文字数
@@ -3774,13 +3793,13 @@
tar.data = data;
data = data.split('');
for (var i=0, tdli=data.length;i<tdli;++i) {
- var d = document.createElement("div"), dstyle = d.style;
+ var d = _doc.createElement("div"), dstyle = d.style;
dstyle.position = "absolute";
dstyle.marginLeft = dstyle.marginRight = dstyle.marginTop = "0px";
dstyle.paddingTop = dstyle.paddingLeft = "0px";
dstyle.whiteSpace = "nowrap";
dstyle.textIndent = "0px";
- d.appendChild(document.createTextNode(data[i]));
+ d.appendChild(_doc.createTextNode(data[i]));
tar._tars[tar._tars.length] = d;
}
data = null;
@@ -4010,8 +4029,8 @@
};
-function SVGTextPositioningElement() {
- SVGTextContentElement.apply(this);
+function SVGTextPositioningElement(_doc) {
+ SVGTextContentElement.apply(this, arguments);
/*readonly SVGAnimatedLengthList*/ this.x = new SVGAnimatedLengthList();
/*readonly SVGAnimatedLengthList*/ this.y = new SVGAnimatedLengthList();
/*readonly SVGAnimatedLengthList*/ this.dx = new SVGAnimatedLengthList();
@@ -4081,9 +4100,9 @@
SVGTextPositioningElement.constructor = SVGTextContentElement;
SVGTextPositioningElement.prototype = new SVGTextContentElement();
-function SVGTextElement() {
- SVGTextPositioningElement.apply(this);
- this._tar = document.createElement("v:group");
+function SVGTextElement(_doc) {
+ SVGTextPositioningElement.apply(this, arguments);
+ this._tar = _doc.createElement("v:group");
this.addEventListener("DOMNodeInserted", function(evt){
if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) {
return; //強制終了させる
@@ -4194,7 +4213,7 @@
isRect = false;
}
if (!isRect) {
- var backr = document.createElement("v:rect");
+ var backr = _doc.createElement("v:rect");
var backrs = backr.style; //ずれを修正するためのもの
backrs.width = "1px";
backrs.height = "1px";
@@ -4204,7 +4223,8 @@
backr.filled = "false";
ttp.appendChild(backr);
}
- delete tar._cacheMatrix, tar._currentStyle;
+ delete tar._cacheMatrix;
+ delete tar._currentStyle;
isRect = evt = tar = style = tpp = ttpc = null;
}, false);
evt = tar = null;
@@ -4477,7 +4497,7 @@
SVGLinearGradientElement.constructor = SVGGradientElement;
SVGLinearGradientElement.prototype = new SVGGradientElement();
-function SVGRadialGradientElement() {
+function SVGRadialGradientElement(_doc) {
SVGGradientElement.apply(this);
/*readonly SVGAnimatedLength*/ this.cx = new SVGAnimatedLength();
/*readonly SVGAnimatedLength*/ this.cy = new SVGAnimatedLength();
@@ -4543,8 +4563,8 @@
p = pmt = null;
}
var ellipse = list.join(" ");
- var outline = document.getElementById("_NAIBU_outline");
- var background = document.createElement("div"), bstyle = background.style;
+ var outline = _doc.getElementById("_NAIBU_outline");
+ var background = _doc.createElement("div"), bstyle = background.style;
bstyle.position = "absolute";
bstyle.display = "inline-block";
var w = vi.width, h = vi.height;
@@ -4696,9 +4716,10 @@
SVGCursorElement.constructor = SVGElement;
SVGCursorElement.prototype = new SVGElement();
-function SVGAElement() {
+function SVGAElement(_doc) {
SVGElement.apply(this);
- this._tar = document.createElement("a");
+ this._tar = _doc.createElement("a");
+ _doc = null;
/*readonly SVGAnimatedString*/ this.target = new SVGAnimatedString();
this.addEventListener("DOMAttrModified", function(evt){
var tar = evt.target;
@@ -5422,46 +5443,108 @@
d = null;
}
}, false);
+ this.addEventListener("DOMNodeInserted", function(evt){
+ if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) {
+ return; //強制終了させる
+ }
+ var tar = evt.target;
+ tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt){
+ var vlist = [],
+ ti;
+ if (tar._values) {
+ for (var i=0, tav=tar._values, tvli=tav.length;i<tvli;++i) {
+ ti = tav[i];
+ ti = ti.split(",");
+ vlist[i] = [+ti[0], +ti[1]];
+ }
+ tar._valueList = vlist;
+ }
+ }, false);
+ }, false);
this.addEventListener("beginEvent", function(evt) {
- var tar = evt.target, trans = tar.targetElement.transform;
+ var tar = evt.target,
+ trans = tar.targetElement.transform;
/*アニメーション中に変化すべき値をanimValプロパティに入力して、
*baseValと同じような値に設定。
*/
trans.animVal = new SVGTransformList();
if (trans.baseVal.numberOfItems !== 0) {
+ trans.baseVal.consolidate();
trans.animVal.initialize(trans.baseVal.createSVGTransformFromMatrix(trans.baseVal.getItem(0).matrix));
- }
- trans.animVal.appendItem(tar.ownerDocument.documentElement.createSVGTransform());
+ } else {
+ trans.animVal.appendItem(tar.ownerDocument.documentElement.createSVGTransform());
+ }
tar._frame = function() {
- var _tar = tar, tpn = _tar._path;
- if (!!tpn) { //path属性が指定されていた場合、tpnは属性値となる
- var tgsd = _tar.getSimpleDuration();
- if (tgsd === 0) {
- tgsd = null;
+ var _tar = tar,
+ tpn = _tar._path,
+ tgsd = _tar.getSimpleDuration(),
+ d = tgsd * 0.8,
+ tg = _tar.getCurrentTime(),
+ ii;
+ if (tgsd === 0) {
+ tgsd = null;
+ return;
+ }
+ if (tpn) { //path属性が指定されていた場合、tpnは属性値となる
+ var st = tpn.getTotalLength() * tg / d, //stは現在に至るまでの距離
+ p = tpn.getPointAtLength(st),
+ trans = _tar.targetElement.transform;
+ trans.animVal.getItem(trans.animVal.numberOfItems-1).setTranslate(p.x, p.y);
+ var base = trans.baseVal;
+ trans.baseVal = trans.animVal;
+ _tar.targetElement._cacheMatrix = null;
+ var evtt = _tar.ownerDocument.createEvent("MutationEvents");
+ evtt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
+ _tar.targetElement.dispatchEvent(evtt);
+ trans.baseVal = base;
+ evtt = base = trans = st = p = null;
+ } else if (tar._valueList) {
+ var total = 0, //totalは総距離
+ st = 0, //stは現在にいたるまでの距離
+ tav = tar._valueList,
+ n = tav.length - 1;
+ if ((n !== -1) && (d !== 0) && (tg <= d)) {
+ ii = Math.floor((tg*n) / d);
+ if (ii === n) { //iiが境い目のときは、n-2を適用
+ ii -= 1;
+ }
+ } else {
return;
}
- var st = (tpn.getTotalLength() / tgsd) * _tar.getCurrentTime() / 125 * 0.8;
- var p = tpn.getPointAtLength(st), trans = _tar.targetElement.transform;
- p = p.matrixTransform(_tar.targetElement.getScreenCTM());
+ for (var i=1, tvli=tav.length;i<tvli;i+=2) {
+ total += Math.sqrt(Math.pow(tav[i][1] - tav[i-1][1], 2) + Math.pow(tav[i][0] - tav[i-1][0], 2));
+ }
+ for (var i=1;i<ii;i+=2) {
+ st += Math.sqrt(Math.pow(tav[i][1] - tav[i-1][1], 2) + Math.pow(tav[i][0] - tav[i-1][0], 2));
+ }
+ var p = tar.ownerDocument.documentElement.createSVGPoint(),
+ trans = _tar.targetElement.transform;
+ st = (st / total) * d;
+ p.x = tav[ii][0] + (tav[ii+1][0] - tav[ii][0]) * (tg - st) / d;
+ p.y = tav[ii][1] + (tav[ii+1][1] - tav[ii][1]) * (tg - st) / d;
trans.animVal.getItem(trans.animVal.numberOfItems-1).setTranslate(p.x, p.y);
var base = trans.baseVal;
trans.baseVal = trans.animVal;
+ _tar.targetElement._cacheMatrix = null;
var evtt = _tar.ownerDocument.createEvent("MutationEvents");
evtt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
_tar.targetElement.dispatchEvent(evtt);
trans.baseVal = base;
- evtt = base = trans = st = tgsd = p = null;
- } else {
+ evtt = base = trans = st = p = null;
}
}
- evt = trans = null;
+ evt = trans = tpn = tgsd = null;
}, false);
this.addEventListener("endEvent", function(evt) {
- var tar = evt.target, trans = tar.targetElement.transform;
- trans.animVal = trans.baseVal;
- var evtt = tar.ownerDocument.createEvent("MutationEvents");
- evtt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
- tar.targetElement.dispatchEvent(evtt);
+ var tar = evt.target,
+ trans = tar.targetElement.transform,
+ fill = tar.getAttributeNS(null, "fill");
+ if (!fill || (fill === "remove")) {
+ trans.animVal = trans.baseVal;
+ var evtt = tar.ownerDocument.createEvent("MutationEvents");
+ evtt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
+ tar.targetElement.dispatchEvent(evtt);
+ }
tar._frame = evt = evtt = null;
}, false);
this.addEventListener("repeatEvent", function(evt) {
@@ -5530,9 +5613,10 @@
*/
var d = _tar.getSimpleDuration() * 0.8,
n = _tar._valueList.length - 1,
- tg = _tar.getCurrentTime();
+ tg = _tar.getCurrentTime(),
+ ii, di, ti;
if ((n !== -1) && (d !== 0) && (tg <= d)) {
- var ii = Math.floor((tg*n) / d);
+ ii = Math.floor((tg*n) / d);
if (ii === n) { //iiが境い目のときは、n-2を適用
ii -= 1;
}
@@ -5540,17 +5624,22 @@
return;
}
if (tar._keyTimes) {
- var di = (tar._keyTimes[ii+1] - tar._keyTimes[ii]) * d;
- var ti = tar._keyTimes[ii];
+ di = (tar._keyTimes[ii+1] - tar._keyTimes[ii]) * d;
+ ti = tar._keyTimes[ii];
} else {
- var di = d / n; //keyTimesがなければ均等に時間を配分しておく
- var ti = ii / n;
+ di = d / n; //keyTimesがなければ均等に時間を配分しておく
+ ti = ii / n;
}
- var fc = _tar._valueList[ii].rgbColor, tc = _tar._valueList[ii+1].rgbColor, durd = (tg-ti*d) / di, num = CSSPrimitiveValue.CSS_NUMBER;
- var fr = fc.red.getFloatValue(num), fg = fc.green.getFloatValue(num), fb = fc.blue.getFloatValue(num);
- var r = fr + (tc.red.getFloatValue(num) - fr) * durd;
- var g = fg + (tc.green.getFloatValue(num) - fg) * durd;
- var b = fb + (tc.blue.getFloatValue(num) - fb) * durd;
+ var fc = _tar._valueList[ii].rgbColor,
+ tc = _tar._valueList[ii+1].rgbColor,
+ durd = (tg-ti*d) / di,
+ num = CSSPrimitiveValue.CSS_NUMBER,
+ fr = fc.red.getFloatValue(num),
+ fg = fc.green.getFloatValue(num),
+ fb = fc.blue.getFloatValue(num),
+ r = fr + (tc.red.getFloatValue(num) - fr) * durd,
+ g = fg + (tc.green.getFloatValue(num) - fg) * durd,
+ b = fb + (tc.blue.getFloatValue(num) - fb) * durd;
style.setProperty(attrName, "rgb(" +Math.ceil(r)+ "," +Math.ceil(g)+ "," +Math.ceil(b)+ ")", null);
_tar = d = n = tg = fc = tc = fr = fg = fb = num = r = g = b = null;
}
@@ -5883,7 +5972,7 @@
if (isMSIE) {
var rand = "n" +Math.random();
ti._tar.firstChild.setAttribute("id", rand);
- var titf = document.getElementById(rand);
+ var titf = ti.ownerDocument._document_.getElementById(rand);
/*IEのみ、font-sizeは自動で調整されている(つまり、DOMからよびだされた)ものを使った方がよい*/
fontSize = parseFloat(titf.currentStyle.fontSize);
fe = fontSize / em;
Property changes on: trunk/org/w3c/dom/svg.js
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/06x/061/org/w3c/dom/svg.js:1864-2067
/branches/06x/062/org/w3c/dom/svg.js:2071-2106
/branches/06x/063/org/w3c/dom/svg.js:2110-2146
/branches/06x/064/org/w3c/dom/svg.js:2149-2177
/branches/06x/065/org/w3c/dom/svg.js:2179-2209
/branches/06x/066/org/w3c/dom/svg.js:2211-2239
/branches/06x/067/org/w3c/dom/svg.js:2257-2282
/branches/06x/068/org/w3c/dom/svg.js:2284-2314
/branches/06x/069/org/w3c/dom/svg.js:2317-2352
/branches/06x/org/w3c/dom/svg.js:1861-2353
/branches/07x/070/org/w3c/dom/svg.js:2363-2383
/branches/07x/071/org/w3c/dom/svg.js:2385-2433
/branches/07x/072/org/w3c/dom/svg.js:2435-2474
/branches/07x/073/org/w3c/dom/svg.js:2476-2509
/branches/07x/074/org/w3c/dom/svg.js:2511-2556
/branches/07x/075/org/w3c/dom/svg.js:2558-2597
/branches/07x/076/org/w3c/dom/svg.js:2600-2631,2642
/branches/07x/077/org/w3c/dom/svg.js:2635-2677
/branches/07x/078/org/w3c/dom/svg.js:2679-2726
/branches/07x/079/org/w3c/dom/svg.js:2728-2746
/branches/07x/org/org/w3c/dom/svg.js:2643
/branches/07x/org/w3c/dom/svg.js:2356-2753
/branches/ufltima/dom/svg.js:1621-1856
+ /branches/06x/061/org/w3c/dom/svg.js:1864-2067
/branches/06x/062/org/w3c/dom/svg.js:2071-2106
/branches/06x/063/org/w3c/dom/svg.js:2110-2146
/branches/06x/064/org/w3c/dom/svg.js:2149-2177
/branches/06x/065/org/w3c/dom/svg.js:2179-2209
/branches/06x/066/org/w3c/dom/svg.js:2211-2239
/branches/06x/067/org/w3c/dom/svg.js:2257-2282
/branches/06x/068/org/w3c/dom/svg.js:2284-2314
/branches/06x/069/org/w3c/dom/svg.js:2317-2352
/branches/06x/org/w3c/dom/svg.js:1861-2353
/branches/07x/070/org/w3c/dom/svg.js:2363-2383
/branches/07x/071/org/w3c/dom/svg.js:2385-2433
/branches/07x/072/org/w3c/dom/svg.js:2435-2474
/branches/07x/073/org/w3c/dom/svg.js:2476-2509
/branches/07x/074/org/w3c/dom/svg.js:2511-2556
/branches/07x/075/org/w3c/dom/svg.js:2558-2597
/branches/07x/076/org/w3c/dom/svg.js:2600-2631,2642
/branches/07x/077/org/w3c/dom/svg.js:2635-2677
/branches/07x/078/org/w3c/dom/svg.js:2679-2726
/branches/07x/079/org/w3c/dom/svg.js:2728-2746
/branches/07x/org/org/w3c/dom/svg.js:2643
/branches/07x/org/w3c/dom/svg.js:2356-2753
/branches/08x/080/org/w3c/dom/svg.js:2758-2785
/branches/08x/org/w3c/dom/svg.js:2755-2790
/branches/ufltima/dom/svg.js:1621-1856