svnno****@sourc*****
svnno****@sourc*****
2010年 5月 16日 (日) 18:34:53 JST
Revision: 1823 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1823 Author: dhrname Date: 2010-05-16 18:34:53 +0900 (Sun, 16 May 2010) Log Message: ----------- 1, SVGElementのtranslateの処理バグを修正 2, path要素のd属性において、地が空の場合の対処を追加 Modified Paths: -------------- branches/ufltima/dom/svg.js Modified: branches/ufltima/dom/svg.js =================================================================== --- branches/ufltima/dom/svg.js 2010-05-14 14:37:55 UTC (rev 1822) +++ branches/ufltima/dom/svg.js 2010-05-16 09:34:53 UTC (rev 1823) @@ -142,6 +142,7 @@ *TransformListはtransform属性を行列で表現したあとのリスト構造 */ /*readonly attribute SVGAnimatedTransformList*/ this.transform = new SVGAnimatedTransformList(); + this._cacheMatrix = null; //描画の際、SVGStylabaleで指定しておいたプロパティの処理をする this.addEventListener("DOMAttrModified", function(evt){ if (evt.eventPhase === Event.BUBBLING_PHASE) { @@ -177,9 +178,10 @@ var degz = _parseFloat(deg[0]); s.setRotate(degz, _parseFloat(deg[1]), _parseFloat(degi[2])) } else if (degli <= 2) { + var degz = _parseFloat(deg[0]); switch (com) { case "translate": - s.setTranslate(degz) + s.setTranslate(degz, _parseFloat(deg[1] || deg[0])); break; case "scale": s.setScale(degz, _parseFloat(deg[1] || deg[0])); @@ -1931,14 +1933,11 @@ //以下は、d属性に変更があった場合の処理 this.addEventListener("DOMAttrModified", function(evt){ var tar = evt.target; - if (evt.attrName === "d") { - if(evt.newValue === ""){ - /* d属性の値が空の場合は、描画を行わないようにする - * - *SVG1.1 「8.3.9 The grammar for path data」の項目にある最後の文章を参照 - */ - return; - } + if (evt.attrName === "d" && evt.newValue !== ""){ + /* d属性の値が空の場合は、描画を行わないようにする + * + *SVG1.1 「8.3.9 The grammar for path data」の項目にある最後の文章を参照 + */ var tnl = tar.normalizedPathSegList, tlist = tar.pathSegList, D = [], _parseFloat = parseFloat; /*d属性の値を正規表現を用いて、二次元配列Dに変換している。もし、d属性の値が"M 20 30 L20 40"ならば、 *JSONにおける表現は以下のとおり