svnno****@sourc*****
svnno****@sourc*****
2009年 12月 24日 (木) 23:06:08 JST
Revision: 1500
http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1500
Author: dhrname
Date: 2009-12-24 23:06:08 +0900 (Thu, 24 Dec 2009)
Log Message:
-----------
switch構文をやめたことによる、chsetのさらなる軽量化
Modified Paths:
--------------
branches/05x/057/sie.js
Modified: branches/05x/057/sie.js
===================================================================
--- branches/05x/057/sie.js 2009-12-24 13:57:31 UTC (rev 1499)
+++ branches/05x/057/sie.js 2009-12-24 14:06:08 UTC (rev 1500)
@@ -252,9 +252,18 @@
},
isShape = {
shape : 1
+ },
+ STElement = {
+ "path" : STPath,
+ "rect" : STRectElement,
+ "circle" : STCircle,
+ "ellipse" : STEllipse,
+ "polyline" : STPolyline,
+ "polygon" : STPolygon,
+ "line" : STLine
};
SVGtoVML.prototype.chset = function _s_chset( /*element*/ ele, /*Matrix*/ matrix, /*float*/w, /*float*/h){
- var nods = ele.childNodes, s = null, _isGroup = isGroup, _isShape = isShape;
+ var nods = ele.childNodes, s = null, _isGroup = isGroup, _isShape = isShape, _STElement = STElement;
var name = "group|shape|defs|STOP|fill|stroke|DIV|SPAN|A|image|rect|USE|FONTFACEURI|set", gname = "DIV|group"; //要素名に合致させる文字列
var cmatrix = matrix; //子要素に継がせるCTM
var te = nods[0];
@@ -269,29 +278,7 @@
} else {
if (te.nodeType === 1) { //要素ならば
if (isShape[te.nodeName]) {
- switch (te.getAttribute("tag")) {
- case "path":
- s = new STPath(te, matrix);
- break;
- case "rect":
- s = new STRectElement(te, matrix, w, h);
- break;
- case "circle":
- s = new STCircle(te, matrix, w, h);
- break;
- case "ellipse":
- s = new STEllipse(te, matrix, w, h);
- break;
- case "polyline":
- s = new STPolyline(te, matrix);
- break;
- case "polygon":
- s = new STPolygon(te, matrix);
- break;
- case "line":
- s = new STLine(te, matrix, w, h);
- break;
- }
+ s = new (_STElement[te.getAttribute("tag")])(te, matrix, w, h);
} else if (te.nodeName === "DIV") {
s = new STText(te, matrix, w, h);
} else if (_isGroup[te.nodeName]) {