svnno****@sourc*****
svnno****@sourc*****
2009年 12月 24日 (木) 22:57:31 JST
Revision: 1499 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1499 Author: dhrname Date: 2009-12-24 22:57:31 +0900 (Thu, 24 Dec 2009) Log Message: ----------- chsetの最適化 Modified Paths: -------------- branches/05x/057/sie.js Modified: branches/05x/057/sie.js =================================================================== --- branches/05x/057/sie.js 2009-12-24 12:45:47 UTC (rev 1498) +++ branches/05x/057/sie.js 2009-12-24 13:57:31 UTC (rev 1499) @@ -167,7 +167,9 @@ var sw = this.swi.value, sh = this.shi.value; this.getObject("USE", STUseElement, "use", sw, sh); //use要素を先に処理 var mat = this.vi.set(sw, sh, ob); //返り値はMatrix型 + var sed = new Date(); this.chset(this.rootElement, mat, sw, sh); + alert((new Date()).getTime() - sed.getTime()); } catch(n) {stlog.add(n,109);} }; SVGtoVML.prototype.getObject = function stvgetob( /*string*/ tag, /*object*/ st, /*string*/nodes, /*float*/w, h) { @@ -244,8 +246,15 @@ }; //chset childNodesで要素を作成していく +(function() { + var isGroup = { + group : 1 + }, + isShape = { + shape : 1 + }; SVGtoVML.prototype.chset = function _s_chset( /*element*/ ele, /*Matrix*/ matrix, /*float*/w, /*float*/h){ - var nods = ele.childNodes, s = null; + var nods = ele.childNodes, s = null, _isGroup = isGroup, _isShape = isShape; 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]; @@ -259,7 +268,7 @@ te = ns; } else { if (te.nodeType === 1) { //要素ならば - if (te.nodeName === "shape") { + if (isShape[te.nodeName]) { switch (te.getAttribute("tag")) { case "path": s = new STPath(te, matrix); @@ -285,7 +294,7 @@ } } else if (te.nodeName === "DIV") { s = new STText(te, matrix, w, h); - } else if (te.nodeName === "group") { + } else if (_isGroup[te.nodeName]) { s = new STGroupElement(te, matrix, w, h); } else if (te.nodeName === "A") { s = new STAElement(te, matrix); @@ -310,6 +319,7 @@ } nods = name = gname = matrix = cmatrix = w = h = null; }; +})(); //object要素とembed要素の取得を総括して行う function Objectembeds(){