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における表現は以下のとおり