From svnnotify @ sourceforge.jp Mon Aug 2 23:07:35 2010 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Mon, 02 Aug 2010 23:07:35 +0900 Subject: [Sie-announce] =?utf-8?b?U0lF44Kz44O844OJIFsxOTcyXSAgcGF0aOimgQ==?= =?utf-8?b?57Sg44GM5oy/5YWl44GV44KM44KL44Go44GN44Gu44CBdiA6IHNoYXBl6KaB?= =?utf-8?b?57Sg44GM44Gp44Gu44KI44GG44Gr5oy/5YWl44GV44KM44KL44GL44Gr44Gk?= =?utf-8?b?44GE44Gm44CB44Ki44Or44K044Oq44K644Og44KS5aSJ5pu044GX44Gf77yI?= =?utf-8?b?dXNl6KaB57Sg5a++562W77yJ?= Message-ID: <1280758055.197066.11481.nullmailer@users.sourceforge.jp> Revision: 1972 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1972 Author: dhrname Date: 2010-08-02 23:07:35 +0900 (Mon, 02 Aug 2010) Log Message: ----------- path要素が挿入されるときの、v:shape要素がどのように挿入されるかについて、アルゴリズムを変更した(use要素対策) Modified Paths: -------------- branches/06x/061/org/w3c/dom/svg.js Modified: branches/06x/061/org/w3c/dom/svg.js =================================================================== --- branches/06x/061/org/w3c/dom/svg.js 2010-07-29 14:47:20 UTC (rev 1971) +++ branches/06x/061/org/w3c/dom/svg.js 2010-08-02 14:07:35 UTC (rev 1972) @@ -2367,13 +2367,31 @@ if (evt.eventPhase === Event.BUBBLING_PHASE) { return; //強制終了させる } - if (tar.nextSibling) { - if (!!tar.parentNode._tar && !!tar.nextSibling._tar) { - tar.parentNode._tar.insertBefore(tar._tar, tar.nextSibling._tar); + var tnext = tar.nextSibling, tpar = tar.parentNode; + if (tnext && !!tpar._tar) { + if (!!!tnext._tar) { + /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの + *use要素や実体参照などは_tarプロパティがないことに注意 + */ + var isLast = true; + while (tnext) { + if (!!tnext._tar) { + tpar._tar.insertBefore(tar._tar, tnext._tar); + isLast = false; + } + tnext = tnext.nextSibling; + } + if (isLast) { + tpar._tar.appendChild(tar._tar); + } + isLast = null; + } else { + tpar._tar.insertBefore(tar._tar, tnext._tar); } - } else if (!!tar.parentNode._tar){ - tar.parentNode._tar.appendChild(tar._tar); + } else if (!!tpar._tar){ + tpar._tar.appendChild(tar._tar); } + tnext = tpar = null; tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt){ /*以下の処理は、normalizedpathSegListとCTMに基づいて、 *SVGのd属性をVMLに変換していく処理である。 From svnnotify @ sourceforge.jp Mon Aug 2 23:24:53 2010 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Mon, 02 Aug 2010 23:24:53 +0900 Subject: [Sie-announce] =?utf-8?b?U0lF44Kz44O844OJIFsxOTczXSAgdXNl6KaB57Sg?= =?utf-8?b?44Gu5a6f6KOF6ZaL5aeL?= Message-ID: <1280759093.824202.7198.nullmailer@users.sourceforge.jp> Revision: 1973 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1973 Author: dhrname Date: 2010-08-02 23:24:53 +0900 (Mon, 02 Aug 2010) Log Message: ----------- use要素の実装開始 Modified Paths: -------------- branches/06x/061/org/w3c/dom/svg.js Modified: branches/06x/061/org/w3c/dom/svg.js =================================================================== --- branches/06x/061/org/w3c/dom/svg.js 2010-08-02 14:07:35 UTC (rev 1972) +++ branches/06x/061/org/w3c/dom/svg.js 2010-08-02 14:24:53 UTC (rev 1973) @@ -1203,13 +1203,31 @@ if (evt.eventPhase === Event.BUBBLING_PHASE) { return; //強制終了させる } - if (tar.nextSibling) { - if (!!tar.parentNode._tar && !!tar.nextSibling._tar) { - tar.parentNode._tar.insertBefore(tar._tar, tar.nextSibling._tar); + var tnext = tar.nextSibling, tpar = tar.parentNode; + if (tnext && !!tpar._tar) { + if (!!!tnext._tar) { + /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの + *use要素や実体参照などは_tarプロパティがないことに注意 + */ + var isLast = true; + while (tnext) { + if (!!tnext._tar) { + tpar._tar.insertBefore(tar._tar, tnext._tar); + isLast = false; + } + tnext = tnext.nextSibling; + } + if (isLast) { + tpar._tar.appendChild(tar._tar); + } + isLast = null; + } else { + tpar._tar.insertBefore(tar._tar, tnext._tar); } - } else if (!!tar.parentNode._tar){ - tar.parentNode._tar.appendChild(tar._tar); + } else if (!!tpar._tar){ + tpar._tar.appendChild(tar._tar); } + tnext = tpar = null; evt.target.addEventListener("DOMAttrModified", function(evt){ var tar = evt.target; var s = tar.getElementsByTagNameNS("http://www.w3.org/2000/svg", "*"); @@ -1303,7 +1321,7 @@ tgtb.appendItem(trans); tar._gtar.appendChild(tar.instanceRoot); tar.parentNode.insertBefore(tar._gtar, tar); - tar = evtt = tgtb = null; + evt = trans = tar = evtt = tgtb = null; }, false); SVGURIReference.apply(this); return this; @@ -2603,13 +2621,31 @@ return; //強制終了させる } var tar = evt.target; - if (tar.nextSibling) { - if (!!tar.parentNode._tar && !!tar.nextSibling._tar) { - tar.parentNode._tar.insertBefore(tar._tar, tar.nextSibling._tar); + var tnext = tar.nextSibling, tpar = tar.parentNode; + if (tnext && !!tpar._tar) { + if (!!!tnext._tar) { + /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの + *use要素や実体参照などは_tarプロパティがないことに注意 + */ + var isLast = true; + while (tnext) { + if (!!tnext._tar) { + tpar._tar.insertBefore(tar._tar, tnext._tar); + isLast = false; + } + tnext = tnext.nextSibling; + } + if (isLast) { + tpar._tar.appendChild(tar._tar); + } + isLast = null; + } else { + tpar._tar.insertBefore(tar._tar, tnext._tar); } - } else if (!!tar.parentNode._tar){ - tar.parentNode._tar.appendChild(tar._tar); + } else if (!!tpar._tar){ + tpar._tar.appendChild(tar._tar); } + tnext = tpar = null; tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt) { var tar = evt.target; var rx = tar.hasAttributeNS(null, "rx"), ry = tar.hasAttributeNS(null, "ry"); @@ -2678,13 +2714,31 @@ return; //強制終了させる } var tar = evt.target; - if (tar.nextSibling) { - if (!!tar.parentNode._tar && !!tar.nextSibling._tar) { - tar.parentNode._tar.insertBefore(tar._tar, tar.nextSibling._tar); + var tnext = tar.nextSibling, tpar = tar.parentNode; + if (tnext && !!tpar._tar) { + if (!!!tnext._tar) { + /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの + *use要素や実体参照などは_tarプロパティがないことに注意 + */ + var isLast = true; + while (tnext) { + if (!!tnext._tar) { + tpar._tar.insertBefore(tar._tar, tnext._tar); + isLast = false; + } + tnext = tnext.nextSibling; + } + if (isLast) { + tpar._tar.appendChild(tar._tar); + } + isLast = null; + } else { + tpar._tar.insertBefore(tar._tar, tnext._tar); } - } else if (!!tar.parentNode._tar){ - tar.parentNode._tar.appendChild(tar._tar); + } else if (!!tpar._tar){ + tpar._tar.appendChild(tar._tar); } + tnext = tpar = null; tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt) { var tar = evt.target; var cx = tar.cx.baseVal.value, cy = tar.cy.baseVal.value, rx = ry = tar.r.baseVal.value; @@ -2736,13 +2790,31 @@ return; //強制終了させる } var tar = evt.target; - if (tar.nextSibling) { - if (!!tar.parentNode._tar && !!tar.nextSibling._tar) { - tar.parentNode._tar.insertBefore(tar._tar, tar.nextSibling._tar); + var tnext = tar.nextSibling, tpar = tar.parentNode; + if (tnext && !!tpar._tar) { + if (!!!tnext._tar) { + /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの + *use要素や実体参照などは_tarプロパティがないことに注意 + */ + var isLast = true; + while (tnext) { + if (!!tnext._tar) { + tpar._tar.insertBefore(tar._tar, tnext._tar); + isLast = false; + } + tnext = tnext.nextSibling; + } + if (isLast) { + tpar._tar.appendChild(tar._tar); + } + isLast = null; + } else { + tpar._tar.insertBefore(tar._tar, tnext._tar); } - } else if (!!tar.parentNode._tar){ - tar.parentNode._tar.appendChild(tar._tar); + } else if (!!tpar._tar){ + tpar._tar.appendChild(tar._tar); } + tnext = tpar = null; tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt) { var tar = evt.target; var cx = tar.cx.baseVal.value, cy = tar.cy.baseVal.value, rx = tar.rx.baseVal.value, ry = tar.ry.baseVal.value; @@ -2794,13 +2866,31 @@ return; //強制終了させる } var tar = evt.target; - if (tar.nextSibling) { - if (!!tar.parentNode._tar && !!tar.nextSibling._tar) { - tar.parentNode._tar.insertBefore(tar._tar, tar.nextSibling._tar); + var tnext = tar.nextSibling, tpar = tar.parentNode; + if (tnext && !!tpar._tar) { + if (!!!tnext._tar) { + /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの + *use要素や実体参照などは_tarプロパティがないことに注意 + */ + var isLast = true; + while (tnext) { + if (!!tnext._tar) { + tpar._tar.insertBefore(tar._tar, tnext._tar); + isLast = false; + } + tnext = tnext.nextSibling; + } + if (isLast) { + tpar._tar.appendChild(tar._tar); + } + isLast = null; + } else { + tpar._tar.insertBefore(tar._tar, tnext._tar); } - } else if (!!tar.parentNode._tar){ - tar.parentNode._tar.appendChild(tar._tar); + } else if (!!tpar._tar){ + tpar._tar.appendChild(tar._tar); } + tnext = tpar = null; tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt) { var tar = evt.target; var list = ["m", tar.x1.baseVal.value, tar.y1.baseVal.value, "l", tar.x2.baseVal.value, tar.y2.baseVal.value]; @@ -2865,13 +2955,31 @@ return; //強制終了させる } var tar = evt.target; - if (tar.nextSibling) { - if (!!tar.parentNode._tar && !!tar.nextSibling._tar) { - tar.parentNode._tar.insertBefore(tar._tar, tar.nextSibling._tar); + var tnext = tar.nextSibling, tpar = tar.parentNode; + if (tnext && !!tpar._tar) { + if (!!!tnext._tar) { + /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの + *use要素や実体参照などは_tarプロパティがないことに注意 + */ + var isLast = true; + while (tnext) { + if (!!tnext._tar) { + tpar._tar.insertBefore(tar._tar, tnext._tar); + isLast = false; + } + tnext = tnext.nextSibling; + } + if (isLast) { + tpar._tar.appendChild(tar._tar); + } + isLast = null; + } else { + tpar._tar.insertBefore(tar._tar, tnext._tar); } - } else if (!!tar.parentNode._tar){ - tar.parentNode._tar.appendChild(tar._tar); + } else if (!!tpar._tar){ + tpar._tar.appendChild(tar._tar); } + tnext = tpar = null; tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt) { var tar = evt.target, tp = tar.points; //以下は、配列listそのものをCTMで座標変換していく処理 @@ -2928,13 +3036,31 @@ return; //強制終了させる } var tar = evt.target; - if (tar.nextSibling) { - if (!!tar.parentNode._tar && !!tar.nextSibling._tar) { - tar.parentNode._tar.insertBefore(tar._tar, tar.nextSibling._tar); + var tnext = tar.nextSibling, tpar = tar.parentNode; + if (tnext && !!tpar._tar) { + if (!!!tnext._tar) { + /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの + *use要素や実体参照などは_tarプロパティがないことに注意 + */ + var isLast = true; + while (tnext) { + if (!!tnext._tar) { + tpar._tar.insertBefore(tar._tar, tnext._tar); + isLast = false; + } + tnext = tnext.nextSibling; + } + if (isLast) { + tpar._tar.appendChild(tar._tar); + } + isLast = null; + } else { + tpar._tar.insertBefore(tar._tar, tnext._tar); } - } else if (!!tar.parentNode._tar){ - tar.parentNode._tar.appendChild(tar._tar); + } else if (!!tpar._tar){ + tpar._tar.appendChild(tar._tar); } + tnext = tpar = null; tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt) { var tar = evt.target, tp = tar.points; //以下は、配列listそのものをCTMで座標変換していく処理 @@ -3244,13 +3370,31 @@ backr.filled = "false"; ttp.appendChild(backr); } - if (tar.nextSibling) { - if (!!tar.parentNode._tar && !!tar.nextSibling._tar) { - tar.parentNode._tar.insertBefore(ttp, tar.nextSibling._tar); + var tnext = tar.nextSibling, tpar = tar.parentNode; + if (tnext && !!tpar._tar) { + if (!!!tnext._tar) { + /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの + *use要素や実体参照などは_tarプロパティがないことに注意 + */ + var isLast = true; + while (tnext) { + if (!!tnext._tar) { + tpar._tar.insertBefore(tar._tar, tnext._tar); + isLast = false; + } + tnext = tnext.nextSibling; + } + if (isLast) { + tpar._tar.appendChild(tar._tar); + } + isLast = null; + } else { + tpar._tar.insertBefore(tar._tar, tnext._tar); } - } else if (!!tar.parentNode._tar){ - tar.parentNode._tar.appendChild(ttp); + } else if (!!tpar._tar){ + tpar._tar.appendChild(tar._tar); } + tnext = tpar = null; } tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt) { var tar = evt.target, ti = tar.firstChild; From svnnotify @ sourceforge.jp Fri Aug 6 20:47:19 2010 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Fri, 06 Aug 2010 20:47:19 +0900 Subject: [Sie-announce] =?utf-8?b?U0lF44Kz44O844OJIFsxOTc0XSAg5a6f5L2T5Y+C?= =?utf-8?b?54Wn44Gu5a6f6KOF44KS44GX44Gf?= Message-ID: <1281095239.789471.23876.nullmailer@users.sourceforge.jp> Revision: 1974 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1974 Author: dhrname Date: 2010-08-06 20:47:19 +0900 (Fri, 06 Aug 2010) Log Message: ----------- 実体参照の実装をした Modified Paths: -------------- branches/06x/061/org/w3c/dom/svg.js Modified: branches/06x/061/org/w3c/dom/svg.js =================================================================== --- branches/06x/061/org/w3c/dom/svg.js 2010-08-02 14:24:53 UTC (rev 1973) +++ branches/06x/061/org/w3c/dom/svg.js 2010-08-06 11:47:19 UTC (rev 1974) @@ -1449,6 +1449,20 @@ NAIBU.doc.validateOnParse = false; NAIBU.doc.resolveExternals = false; NAIBU.doc.loadXML(str); + if (/&[^;]+;/.test(str)) { + /*以下の処理は、実体参照を使ったとき + *代替の処理を用いて、実体参照を処理するもの + */ + var tmp = str; + var enti = (NAIBU.doc.doctype)? NAIBU.doc.doctype.entities: { length:0 }; + for (var i=0; i Revision: 1975 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1975 Author: dhrname Date: 2010-08-14 20:26:44 +0900 (Sat, 14 Aug 2010) Log Message: ----------- CSS2Propertiesの処理にバグがあったため、css.jsからsvg.jsへ処理コードを移した Modified Paths: -------------- branches/06x/061/org/w3c/dom/css.js branches/06x/061/org/w3c/dom/svg.js Modified: branches/06x/061/org/w3c/dom/css.js =================================================================== --- branches/06x/061/org/w3c/dom/css.js 2010-08-06 11:47:19 UTC (rev 1974) +++ branches/06x/061/org/w3c/dom/css.js 2010-08-14 11:26:44 UTC (rev 1975) @@ -613,31 +613,6 @@ kerning : "auto", textAnchor : "start" }; -/*以下は、getComputedStyleメソッドで使うために、CSS2Propertiesの_listプロパティに、 - *CSSprimitiveValueのリストを収納している。なお、その際に、writingModeなどはwriting-modeに変更している - */ -(function(){ - var s = []; - for (var i in CSS2Properties) { - if(CSS2Properties.hasOwnProperty(i)) { - var n = s[s.length] = new CSSPrimitiveValue(); - var t = i.replace(/([A-Z])/, "-"); - if (!!RegExp.$1) { - var u = "-" +RegExp.$1.toLowerCase(); - } else { - var u = "-"; - } - t = t.replace(/\-/, u); - n.cssText += t; - n.cssText += ":"; - n.cssText += CSS2Properties[i]; - n = p = m = i = t = u = null; - } - } - s._opacity = 1; - s._fontSize = 12; - CSS2Properties._list = s; -})(); function CSSStyleSheet() { /*CSSRule*/ this.ownerRule = null; Modified: branches/06x/061/org/w3c/dom/svg.js =================================================================== --- branches/06x/061/org/w3c/dom/svg.js 2010-08-06 11:47:19 UTC (rev 1974) +++ branches/06x/061/org/w3c/dom/svg.js 2010-08-14 11:26:44 UTC (rev 1975) @@ -201,7 +201,8 @@ style.cssText = sc; if (sc !== "") { //style属性値の解析 - sc = sc.replace(/\:\s+/g, ":") + sc = sc.replace(/^[^a-z\-]+/, "") + .replace(/\:\s+/g, ":") .replace(/\s*;[^a-z\-]*/g, ";"); var a = sc.split(";"); for (var i=0, ali=a.length;i Revision: 1976 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1976 Author: dhrname Date: 2010-08-14 21:04:53 +0900 (Sat, 14 Aug 2010) Log Message: ----------- use要素の実装 Modified Paths: -------------- branches/06x/061/org/w3c/dom/svg.js Modified: branches/06x/061/org/w3c/dom/svg.js =================================================================== --- branches/06x/061/org/w3c/dom/svg.js 2010-08-14 11:26:44 UTC (rev 1975) +++ branches/06x/061/org/w3c/dom/svg.js 2010-08-14 12:04:53 UTC (rev 1976) @@ -1297,9 +1297,14 @@ if (evt.eventPhase === Event.BUBBLING_PHASE) { return; } - if (!!evt.target._gtar) { - evt.target._gtar.dispatchEvent(evt); + var tar = evt.target; + if (!!!tar._gtar) { + tar._gtar = tar.ownerDocument.createElementNS("http://www.w3.org/2000/svg", "g"); } + var evtt = tar.ownerDocument.createEvent("MutationEvents"); + evtt.initMutationEvent("DOMAttrModified", true, false, evt.relatedNode, null, evt.newValue, evt.attrName, evt.attrChange); + tar._gtar.dispatchEvent(evtt); + evtt = null; }, false); this.addEventListener("DOMNodeInserted", function(evt){ if (evt.eventPhase === Event.BUBBLING_PHASE) { @@ -1310,9 +1315,6 @@ this.addEventListener("SVGLoad", function(evt){ var tar = evt.target; tar.instanceRoot = tar.animatedInstanceRoot = tar.ownerDocument.importNode(tar._instance, true); - if (!!!tar._gtar) { - tar._gtar = tar.ownerDocument.createElementNS("http://www.w3.org/2000/svg", "g"); - } if (tar.getAttributeNS(null, "transform")) { tar._gtar.setAttributeNS(null, "transform", tar.getAttributeNS(null, "transform")); } From svnnotify @ sourceforge.jp Fri Aug 20 20:49:14 2010 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Fri, 20 Aug 2010 20:49:14 +0900 Subject: [Sie-announce] =?utf-8?b?U0lF44Kz44O844OJIFsxOTc3XSAgU1ZHQ29sb3I=?= =?utf-8?b?44Kq44OW44K444Kn44Kv44OI44Gu5L+u5q2j44Go44CBU1ZHQW5pbWF0aW9u?= =?utf-8?b?RWxlbWVudOOBruS/ruatow==?= Message-ID: <1282304954.020645.6324.nullmailer@users.sourceforge.jp> Revision: 1977 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1977 Author: dhrname Date: 2010-08-20 20:49:13 +0900 (Fri, 20 Aug 2010) Log Message: ----------- SVGColorオブジェクトの修正と、SVGAnimationElementの修正 Modified Paths: -------------- branches/06x/061/org/w3c/dom/svg.js Modified: branches/06x/061/org/w3c/dom/svg.js =================================================================== --- branches/06x/061/org/w3c/dom/svg.js 2010-08-14 12:04:53 UTC (rev 1976) +++ branches/06x/061/org/w3c/dom/svg.js 2010-08-20 11:49:13 UTC (rev 1977) @@ -588,6 +588,10 @@ r = g = b = null; } else { var s = rgbColor.match(/\d+/g); + if (!!!s) { //数値が含まれていなければ強制的に終了 + rgbColor = null; + return; + } } this.rgbColor.red.cssText = s[0]; this.rgbColor.green.cssText = s[1]; @@ -1194,7 +1198,7 @@ SVGViewSpec.prototype = new SVGFitToViewBox(); function SVGGElement() { - SVGElement.apply(this, arguments); + SVGElement.apply(this); this._tar = document.createElement("v:group"); /*以下の処理は、この子要素ノードがDOMツリーに追加されて初めて、 *描画が開始されることを示す。つまり、appendChildで挿入されない限り、描画をしない。 @@ -4044,7 +4048,11 @@ SVGZoomEvent.prototype = new UIEvent(); function SVGAnimationElement() { - SVGElement.apply(this, arguments); + SVGElement.apply(this); + /*SIEにおけるSVGElementでは、fill属性とStyleSheetを結びつける機構があるため、 + *styleのsetPropertyメソッドを無効化させておく必要がある + */ + this.style.setProperty = function(){}; this._tar = null; /*readonly SVGElement*/ this.targetElement; this._currentTime = 0; From svnnotify @ sourceforge.jp Fri Aug 20 21:31:56 2010 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Fri, 20 Aug 2010 21:31:56 +0900 Subject: [Sie-announce] =?utf-8?b?U0lF44Kz44O844OJIFsxOTc4XQ==?= Message-ID: <1282307516.834403.27751.nullmailer@users.sourceforge.jp> Revision: 1978 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1978 Author: dhrname Date: 2010-08-20 21:31:56 +0900 (Fri, 20 Aug 2010) Log Message: ----------- Modified Paths: -------------- branches/06x/061/org/w3c/core.js Modified: branches/06x/061/org/w3c/core.js =================================================================== --- branches/06x/061/org/w3c/core.js 2010-08-20 11:49:13 UTC (rev 1977) +++ branches/06x/061/org/w3c/core.js 2010-08-20 12:31:56 UTC (rev 1978) @@ -954,7 +954,7 @@ ele.localName = localName; ele.prefix = prefix; ele.ownerDocument = this; - namespaceURI = qualifiedName = prefix = localName = isSpecified = null; + ti = namespaceURI = qualifiedName = prefix = localName = isSpecified = null; return ele; }; /*createAttributeNSメソッド From svnnotify @ sourceforge.jp Tue Aug 24 19:54:26 2010 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Tue, 24 Aug 2010 19:54:26 +0900 Subject: [Sie-announce] =?utf-8?b?U0lF44Kz44O844OJIFsxOTc5XSAgc2V0SW50ZXJ2?= =?utf-8?b?YWzjgavplqLjgZnjgovkv67mraM=?= Message-ID: <1282647266.142593.20838.nullmailer@users.sourceforge.jp> Revision: 1979 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1979 Author: dhrname Date: 2010-08-24 19:54:25 +0900 (Tue, 24 Aug 2010) Log Message: ----------- setIntervalに関する修正 Modified Paths: -------------- branches/06x/061/org/w3c/dom/svg.js Modified: branches/06x/061/org/w3c/dom/svg.js =================================================================== --- branches/06x/061/org/w3c/dom/svg.js 2010-08-20 12:31:56 UTC (rev 1978) +++ branches/06x/061/org/w3c/dom/svg.js 2010-08-24 10:54:25 UTC (rev 1979) @@ -1552,6 +1552,7 @@ thistar._next._init(); } else { /*全要素の読み込みが終了した場合*/ + NAIBU.Time.start(); NAIBU.doc = null; } } @@ -4076,8 +4077,6 @@ this.endElement = s.endElement; this.beginElementAt = s.beginElementAt; this.endElementAt = s.endElementAt; - //NAIBU.Clipというリストに追加 - NAIBU.Clip[NAIBU.Clip.length] = this; this.addEventListener("beginEvent", function(evt) { var tar = evt.target; if (!tar.isRepeat) { @@ -4125,16 +4124,21 @@ }; //raises( DOMException ); NAIBU.Time = { -  currentFrame : 0, + currentFrame : 0, start : function() { if (NAIBU.Clip.length > 0) { NAIBU.stop = setInterval( (function() { + try{ var ntc = NAIBU.Time.currentFrame++; var nc = NAIBU.Clip; var s = ntc * 125 / 0.8; //フレーム数ntcをミリ秒数sに変換 + if (ntc > 7000) { + clearInterval(NAIBU.stop); + } for (var i=0,ncli=nc.length;i 7000) { - clearInterval(NAIBU.stop); - } + } catch (e) { + stlog.add(e, 4157); + }    }),     125    ); @@ -4161,7 +4165,11 @@ NAIBU.Clip = []; function SVGAnimateElement(){ - SVGAnimationElement.apply(this, arguments); + SVGAnimationElement.apply(this); + /*NAIBU.Clipについては、NAIBU.Timeで使う + *くわしくはNAIBU.Time.start関数のコードを参照 + */ + NAIBU.Clip[NAIBU.Clip.length] = this; this.addEventListener("beginEvent", function(evt) { var tar = evt.target; }, false); @@ -4177,7 +4185,8 @@ SVGAnimateElement.prototype = new SVGAnimationElement(); function SVGSetElement(){ - SVGAnimationElement.apply(this, arguments); + SVGAnimationElement.apply(this); + NAIBU.Clip[NAIBU.Clip.length] = this; this.addEventListener("beginEvent", function(evt) { var tar = evt.target; }, false); @@ -4193,7 +4202,8 @@ SVGSetElement.prototype = new SVGAnimationElement(); function SVGAnimateMotionElement(){ - SVGAnimationElement.apply(this, arguments); + SVGAnimationElement.apply(this); + NAIBU.Clip[NAIBU.Clip.length] = this; this.addEventListener("beginEvent", function(evt) { var tar = evt.target; }, false); @@ -4212,14 +4222,15 @@ SVGElement, SVGURIReference, SVGExternalResourcesRequired*/ { - SVGElement.apply(this, arguments); + SVGElement.apply(this); return this; }; SVGMPathElement.constructor = SVGElement; SVGMPathElement.prototype = new SVGElement(); function SVGAnimateColorElement() { - SVGAnimationElement.apply(this, arguments); + SVGAnimationElement.apply(this); + NAIBU.Clip[NAIBU.Clip.length] = this; this.addEventListener("beginEvent", function(evt) { var tar = evt.target; }, false); @@ -4235,7 +4246,8 @@ SVGAnimateColorElement.prototype = new SVGAnimationElement(); function SVGAnimateTransformElement() { - SVGAnimationElement.apply(this, arguments); + SVGAnimationElement.apply(this); + NAIBU.Clip[NAIBU.Clip.length] = this; this.addEventListener("beginEvent", function(evt) { var tar = evt.target; }, false); @@ -4254,7 +4266,7 @@ SVGElement, SVGExternalResourcesRequired, SVGStylable*/ { - SVGElement.apply(this, arguments); + SVGElement.apply(this); return this; }; SVGFontElement.constructor = SVGElement; From svnnotify @ sourceforge.jp Tue Aug 24 21:12:20 2010 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Tue, 24 Aug 2010 21:12:20 +0900 Subject: [Sie-announce] =?utf-8?b?U0lF44Kz44O844OJIFsxOTgwXSAgX3RhcuODlw==?= =?utf-8?b?44Ot44OR44OG44Kj44KS44Oh44K944OD44OJ44Gr5L2/44GG44Gu44KS44KE?= =?utf-8?b?44KB44KL?= Message-ID: <1282651940.566402.10312.nullmailer@users.sourceforge.jp> Revision: 1980 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1980 Author: dhrname Date: 2010-08-24 21:12:20 +0900 (Tue, 24 Aug 2010) Log Message: ----------- _tarプロパティをメソッドに使うのをやめる Modified Paths: -------------- branches/06x/061/org/w3c/dom/smil.js Modified: branches/06x/061/org/w3c/dom/smil.js =================================================================== --- branches/06x/061/org/w3c/dom/smil.js 2010-08-24 10:54:25 UTC (rev 1979) +++ branches/06x/061/org/w3c/dom/smil.js 2010-08-24 12:12:20 UTC (rev 1980) @@ -78,21 +78,21 @@ }; ElementTimeControl.prototype = { /*void*/ beginElement : function() { - var ttd = this._tar.ownerDocument, evt = ttd.createEvent("TimeEvents"); + var ttd = this.ownerDocument, evt = ttd.createEvent("TimeEvents"); evt.initTimeEvent("beginEvent", ttd.defaultView, 0); - this._tar.dispatchEvent(evt); + this.dispatchEvent(evt); }, /*void*/ endElement : function() { - var ttd = this._tar.ownerDocument, evt = ttd.createEvent("TimeEvents"); + var ttd = this.ownerDocument, evt = ttd.createEvent("TimeEvents"); evt.initTimeEvent("endEvent", ttd.defaultView, 0); - this._tar.dispatchEvent(evt); + this.dispatchEvent(evt); }, /*void*/ beginElementAt : function(/*float*/ offset) { - var ntc = this._tar.ownerDocument.documentElement.getCurrentTime(); + var ntc = this.ownerDocument.documentElement.getCurrentTime(); this._begin = offset + ntc; }, /*void*/ endElementAt : function(/*float*/ offset) { - var ntc = this._tar.ownerDocument.documentElement.getCurrentTime(); + var ntc = this.ownerDocument.documentElement.getCurrentTime(); this._end = offset + ntc; } }; From svnnotify @ sourceforge.jp Tue Aug 24 21:25:33 2010 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Tue, 24 Aug 2010 21:25:33 +0900 Subject: [Sie-announce] =?utf-8?b?U0lF44Kz44O844OJIFsxOTgxXQ==?= Message-ID: <1282652733.812364.28689.nullmailer@users.sourceforge.jp> Revision: 1981 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1981 Author: dhrname Date: 2010-08-24 21:25:33 +0900 (Tue, 24 Aug 2010) Log Message: ----------- Modified Paths: -------------- branches/06x/061/org/w3c/dom/svg.js Modified: branches/06x/061/org/w3c/dom/svg.js =================================================================== --- branches/06x/061/org/w3c/dom/svg.js 2010-08-24 12:12:20 UTC (rev 1980) +++ branches/06x/061/org/w3c/dom/svg.js 2010-08-24 12:25:33 UTC (rev 1981) @@ -4048,7 +4048,10 @@ SVGZoomEvent.constructor = UIEvent; SVGZoomEvent.prototype = new UIEvent(); -function SVGAnimationElement() { +function SVGAnimationElement(es) { + if (!!es) { + return this; + } SVGElement.apply(this); /*SIEにおけるSVGElementでは、fill属性とStyleSheetを結びつける機構があるため、 *styleのsetPropertyメソッドを無効化させておく必要がある @@ -4056,7 +4059,7 @@ this.style.setProperty = function(){}; this._tar = null; /*readonly SVGElement*/ this.targetElement; - this._currentTime = 0; + this._currentFrame = 0; this._currentCount = 0; /*_maxCountはrepeatCount属性で指定された数値 *_maxDurはrepeatDur属性で指定された数値 @@ -4091,6 +4094,45 @@ } } }, false); + this.addEventListener("DOMAttrModified", function(evt){ + var tar = evt.target, name = evt.attrName; + if (name === "begin") { + tar._eventSync(evt.newValue, + (function(te, offse, ta, t) { + ta.addEventListener( t.match(te._eventRegExp)[0], + function(){ + if (offse !== 0) { + te.beginElementAt(offse); + } else { + te._begin = NAIBU.Time.currentFrame; + te.beginElement(); + te._currentFrame++; + } + }, false); + }), "beginElementAt"); + } else if (name === "end") { + tar._eventSync(evt.newValue, + (function(te, offse, ta, t) { + ta.addEventListener( t.match(te._eventRegExp)[0], + function(){ + te.endElementAt(offse); + }, false ); + }), "endElementAt"); + } else if (name === "dur") { + tar._simpleDuration = tar._getOffset(evt.newValue); + } else if (name === "repeatCount") { + tar._maxCount = parseFloat(evt.newValue); + tar._isRepeat = true; + } else if (name === "repeatDur") { + tar._maxDur = parseFloat(evt.newValue); + tar._isRepeat = true; + } + evt = null; + }, false); + this.addEventListener("DOMNodeInsertedIntoDocument", function(evt){ + evt.target.targetElement = evt.target.parentNode; + evt = null; + }, false); this.addEventListener("repeatEvent", function(evt) { var tar = evt.target; if ((tar._currentCount >= tar._maxCount) || (tar.getCurrentTime() >= (tar._maxDur+tar.getStartTime()))) { @@ -4101,7 +4143,36 @@ }; SVGAnimationElement.constructor = SVGElement; SVGAnimationElement.prototype = new SVGElement(); - +SVGAnimationElement.prototype._eventRegExp = /(mouse|activ|clic)[a-z]+/; +SVGAnimationElement.prototype._timeRegExp = /[\-\d\.]+(h|min|s|ms)/; +SVGAnimationElement.prototype._unit = { + "h" : 2880000, + "min" : 48000, + "s" : 800, + "ms" : 0.8 +}; +//どれだけズレの時間があるかを計測するメソッド +SVGAnimationElement.prototype._getOffset = function(/*string*/ t) { + var n = parseFloat(t.match(this._timeRegExp)); + var offset = (!isNaN(n)) ? n * this._unit[RegExp.$1] : 0; + n = t = null; + return offset; +}; +SVGAnimationElement.prototype._eventSync = function(/*string*/ t, /*function*/ f, /*string*/ methodName) { + var offset = this._getOffset(t); + if ( /(mouse|activ|click)/.test(t) ) { //イベントがある場合 + var tar; + this._begin = NAIBU.Time.Max; + if ( /\.\D/.test(t) ) { + tar = this.ownerDocument.getElementById( t.substring(0, t.indexOf(".")) ); + } else { + tar = this.targetElement; + } + f(this, offset, tar, t); + } else { + this[methodName](offset); + } +}; /*float*/ SVGAnimationElement.prototype.getStartTime = function(){ if (!!this._begin) { return (this._begin); @@ -4110,7 +4181,7 @@ } }; /*float*/ SVGAnimationElement.prototype.getCurrentTime = function(){ - return (this._currentTime); + return (this._currentFrame * 125 / 0.8); }; /*float*/ SVGAnimationElement.prototype.getSimpleDuration = function(){ if (!!!this._simpleDuration && !!!this._end) { @@ -4125,6 +4196,7 @@ //raises( DOMException ); NAIBU.Time = { currentFrame : 0, + Max : 7000, start : function() { if (NAIBU.Clip.length > 0) { NAIBU.stop = setInterval( (function() { @@ -4132,7 +4204,7 @@ var ntc = NAIBU.Time.currentFrame++; var nc = NAIBU.Clip; var s = ntc * 125 / 0.8; //フレーム数ntcをミリ秒数sに変換 - if (ntc > 7000) { + if (ntc > NAIBU.Time.Max) { clearInterval(NAIBU.stop); } for (var i=0,ncli=nc.length;i Revision: 1982 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1982 Author: dhrname Date: 2010-08-25 23:35:47 +0900 (Wed, 25 Aug 2010) Log Message: ----------- SMILアニメーションにおいて、beginイベントとendイベントを実装した Modified Paths: -------------- branches/06x/061/org/w3c/dom/svg.js Modified: branches/06x/061/org/w3c/dom/svg.js =================================================================== --- branches/06x/061/org/w3c/dom/svg.js 2010-08-24 12:25:33 UTC (rev 1981) +++ branches/06x/061/org/w3c/dom/svg.js 2010-08-25 14:35:47 UTC (rev 1982) @@ -1002,6 +1002,7 @@ /*unsigned short*/ this.zoomAndPan = SVGZoomAndPan.SVG_ZOOMANDPAN_DISABLE; this._tx = 0; this._ty = 0; + /*int*/ this._currentTime = 0; /*DOMAttrModifiedイベントを利用して、 *随時、属性の値をDOMプロパティに変換しておくリスナー登録 */ @@ -4151,30 +4152,41 @@ "s" : 800, "ms" : 0.8 }; -//どれだけズレの時間があるかを計測するメソッド +/*どれだけズレの時間があるかを計測するメソッド + *tに数値が使われていないときはnullを返す + */ SVGAnimationElement.prototype._getOffset = function(/*string*/ t) { var n = parseFloat(t.match(this._timeRegExp)); - var offset = (!isNaN(n)) ? n * this._unit[RegExp.$1] : 0; + if (!isNaN(n)) { + var offset = n * this._unit[RegExp.$1] + } else { + var offset = null; + } n = t = null; return offset; }; SVGAnimationElement.prototype._eventSync = function(/*string*/ t, /*function*/ f, /*string*/ methodName) { var offset = this._getOffset(t); + this._begin = NAIBU.Time.Max; if ( /(mouse|activ|click)/.test(t) ) { //イベントがある場合 var tar; - this._begin = NAIBU.Time.Max; if ( /\.\D/.test(t) ) { tar = this.ownerDocument.getElementById( t.substring(0, t.indexOf(".")) ); } else { tar = this.targetElement; } + if (!offset) { + offset = NAIBU.Time.Max; + } f(this, offset, tar, t); + } else if (!offset && (t !== "undefined") && (offset !== 0)) { + this._begin = null; } else { this[methodName](offset); } }; /*float*/ SVGAnimationElement.prototype.getStartTime = function(){ - if (!!this._begin) { + if (!!this._begin || this._begin === 0) { return (this._begin); } else { throw new DOMException(DOMException.INVALID_STATE_ERR); @@ -4210,7 +4222,6 @@ for (var i=0,ncli=nc.length;i