[Sie-announce] SIEコード [1165] 0. 47の統合

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2009年 5月 15日 (金) 19:08:22 JST


Revision: 1165
          http://svn.sourceforge.jp/view?root=sie&view=rev&rev=1165
Author:   dhrname
Date:     2009-05-15 19:08:22 +0900 (Fri, 15 May 2009)

Log Message:
-----------
0.47の統合

Modified Paths:
--------------
    branches/04x/sie.js

Property Changed:
----------------
    branches/04x/sie.js

Modified: branches/04x/sie.js
===================================================================
--- branches/04x/sie.js	2009-05-13 11:34:34 UTC (rev 1164)
+++ branches/04x/sie.js	2009-05-15 10:08:22 UTC (rev 1165)
@@ -90,9 +90,8 @@
   }
 }
 //他のページに移動する際に起動
-function unsvgtovml(){
-  NAIBU = stlog = STLog = STdocument = null;
-  PaintColor = FontStyle = null;
+function unsvgtovml() {
+  NAIBU = stlog = STLog = PaintColor = FontStyle = null;
 }
 
 //vmlの名前空間をセット(必須)
@@ -101,15 +100,11 @@
     document.namespaces.add("v","urn:schemas-microsoft-com:vml");
     document.namespaces.add("o","urn:schemas-microsoft-com:office:office");
     var st = document.createStyleSheet();
-    var vmlUrl = "behavior: url(#default#VML);display:inline-block;"; //inline-blockはIEのバグ対策
-    st.addRule("v\\:rect",vmlUrl);
-    st.addRule("v\\:image",vmlUrl);
-    st.addRule("v\\:fill",vmlUrl);
-    st.addRule("v\\:stroke",vmlUrl);
-    st.addRule("o\\:opacity2",vmlUrl);
-    st.addRule("dn\\:defs","display:none");
-    st.addRule("v\\:group", vmlUrl+ "position:relative;width:100%;height:100%;");
-    st.addRule("v\\:shape", vmlUrl+ "width:100%;height:100%;");
+    var vmlUrl = "behavior: url(#default#VML);display:inline-block;} "; //inline-blockはIEのバグ対策
+    st.cssText = "v\\:rect{" +vmlUrl+ "v\\:image{" +vmlUrl+ "v\\:fill{" +vmlUrl+ "v\\:stroke{" +vmlUrl+ "o\\:opacity2{" +vmlUrl
+      + "dn\\:defs{display:none}"
+      + "v\\:group{position:relative;width:100%;height:100%;" +vmlUrl
+      + "v\\:shape{width:100%;height:100%;" +vmlUrl;
   }
 }
 
@@ -167,8 +162,8 @@
     la[i] = new st(li[i], w, h);
   }
   this[nodes] = la;
-  } catch(e) {stlog.add(e,129);
-  }
+  li = null;
+  } catch(e) {stlog.add(e,129);}
 }
 SVGtoVML.prototype.set = function stvset(ob) {
   var w = this.w, h = this.h, c = this.children;
@@ -295,7 +290,7 @@
   } catch(e){stlog.add(e,3002);}
   } while (te);
   }
-  name = gname = matrix = null;
+  nods = name = gname = matrix = cmatrix = null;
 }
 
 //object要素とembed要素の取得を総括して行う
@@ -352,7 +347,7 @@
 STGroupElement.prototype.set = function (sw,sh) {
   try{
   stvsetob(this.children,sw,sh);
-  delete (this.children);
+  this.children = this.transformable = null;
   } catch(e){stlog.addd(e,3145)}
 }
 STGroupElement.prototype.chset = SVGtoVML.prototype.chset;
@@ -397,6 +392,7 @@
       l[i] = new STTSpanElement(li[i],this.dx,this.dy,this.transformable, w, h);
     }
     this.tspan = l;
+    li = null;
   } catch(e) {stlog.add(e,129264);}
   return this;
 }
@@ -463,7 +459,7 @@
     }
     tts.left = ptm.x - tancx;
     tts.top = ptm.y - tancy;
-    p = ptm = tancx = tancy = null;
+    p = ptm = tancx = tancy = fij = null;
     this.textLength = textLength;
   } catch(e) {stlog.add(e,2831);}
 }
@@ -532,7 +528,7 @@
     ele.path = dat;
     ele.coordsize = w + " " + h;
     this.paint.set(w, h, ttm);
-    list = pl = plm = dat = null;
+    list = pl = plm = dat = this.paint = ttm = this.transformable = null;
   } catch(e) {stlog.add(e,257);}
 }
 
@@ -639,7 +635,7 @@
     ele.path = dat + " e";
     ele.coordsize = w + " " + h;
     this.paint.set(w, h, ttm);
-    dat = this.paint = this.d = preCom = x = y = x0 = y0 = dx = dy = tma = tmb = tmc = tmd = tme = tmf = null; //解放
+    dat = this.paint = ttm = this.transformable = this.d = preCom = x = y = x0 = y0 = dx = dy = tma = tmb = tmc = tmd = tme = tmf = null; //解放
   } catch(e) {stlog.add(e,372);}
 }
 
@@ -705,6 +701,7 @@
     ele.path = dat;
     ele.coordsize = w + " " + h;
     this.paint.set(w, h, ttm);
+    dat = F = pl = plm = this.paint = ttm = this.transformable = null; //解放
   } catch(e) {stlog.add(e,406);}
 }
 
@@ -731,6 +728,7 @@
     ele.path = dat;
     ele.coordsize = w + " " + h;
     this.paint.set(w, h, ttm);
+    dat = F = pl = plm = this.paint = ttm = this.transformable = null; //解放
   } catch(e) {stlog.add(e,440);}
 }
 
@@ -763,6 +761,7 @@
     ele.path = dat;
     ele.coordsize = w + " " + h;
     this.paint.set(w, h, ttm);
+    dat = list = pl = plm = this.paint = ttm = this.transformable = null; //解放
   } catch(e) {stlog.add(e,479);}
 }
 
@@ -795,6 +794,7 @@
     ele.path = dat;
     ele.coordsize = w + " " + h;
     this.paint.set(w, h, ttm);
+    dat = list = pl = plm = this.paint = ttm = this.transformable = null; //解放
   } catch(e) {stlog.add(e,519);}
 }
 
@@ -845,6 +845,7 @@
     ele.path = dat;
     ele.coordsize = w + " " + h;
     this.paint.set(w, h, ttm);
+    dat = list = pl = plm = this.paint = ttm = this.transformable = null; //解放
   } catch(ee) {stlog.add(ee,576);}
 }
 
@@ -885,6 +886,7 @@
       ttfia.Opacity = parseFloat(this.paint.fillopacity)*100;
     }
     this.xlink.set();
+    dat = pt = this.xlink = this.paint = ttm = this.transformable = null; //解放
   } catch(e) {stlog.set(e,21896);}
 }
 
@@ -966,7 +968,6 @@
 NAIBU.PaintColor.prototype.getParent = function( /*element*/ ele) {
   var parent = ele.parentNode;
   if (parent.tagName !== "group" && parent.tagName !== "A") {
-    NAIBU.PaintColor.rootElement = parent;
     return null;
   } else {
     var cache = this.cache;
@@ -1045,6 +1046,7 @@
       if (strokeOpacity < 1) {
         strokeElement.setAttribute("opacity", strokeOpacity);
       }
+      strokeOpacity = null;
     }
     strokeElement.setAttribute("miterlimit", this.strokemiterlimit);
     strokeElement.setAttribute("joinstyle", this.strokelinejoin);
@@ -1066,6 +1068,7 @@
         }
       }
       strokeElement.setAttribute("dashstyle", this.strokedasharray);
+      tsd = strs = null;
     }
     } catch(e) {stlog.add(e,720); strokeElement.on =  "false";}
     el.appendChild(strokeElement);
@@ -1232,6 +1235,7 @@
   }
   var stops = grad2.getElementsByTagName("stop");
   if (!stops) {
+    grad = grad2 = stops = null;
     return false;
   }
   var length = stops.length;
@@ -1327,7 +1331,7 @@
   } else {
     return false;
   }
-  stops = type = color = colors = opacity = null;
+  stops = type = lengh = color = colors = opacity = null;
   return false;
 }
 
@@ -1408,12 +1412,12 @@
   if (tft) {
     var coma = tft.match(NAIBU.comaR); //コマンド文字にマッチ translate
     var list = tft.match(NAIBU.listR); //カッコ内のリストにマッチ (10 20 30...)
+    var a,b,c,d,e,f,lis,deg,rad,degli,matri;
     for (var j=0;j<coma.length;j++) {
-      var lis = list[j], com = coma[j];
-      var a,b,c,d,e,f;
-      var deg = lis.match(NAIBU.degR);
-      var rad = parseFloat(deg[0]) / 180 * Math.PI;
-      var degli = deg.length;
+      lis = list[j], com = coma[j];
+      deg = lis.match(NAIBU.degR);
+      rad = parseFloat(deg[0]) / 180 * Math.PI;
+      degli = deg.length;
       if (degli === 6) {
         a = parseFloat(deg[0]); b = parseFloat(deg[1]); c = parseFloat(deg[2]); d = parseFloat(deg[3]); e = parseFloat(deg[4]); f = parseFloat(deg[5]);
       } else if (degli === 3) {
@@ -1438,11 +1442,11 @@
         break;
         }
       }
-      var matri = new Matrix(a,b,c,d,e,f);
+      matri = new Matrix(a,b,c,d,e,f);
       matrix = matrix.multiply(matri);
-      lis = com = matri = deg = rad = null;
+      lis = com = deg = rad = null;
     }
-    list = coma = mat = null;
+    list = coma = mat = matri = null;
   }
   }  catch(e) {stlog.add(e,816);}
   return matrix;
@@ -1478,6 +1482,7 @@
     var pmt = p.matrixTransform(ttm);
     F[i++] = pmt.x;
     F[i++] = pmt.y;
+    p = pmt = null;
   }
   var s = new PList(F);
   return s;
@@ -1490,13 +1495,7 @@
 }
 //Matrix同士の積を算出
 Matrix.prototype.multiply = function matrixmultiply( /*Matrix*/ m) {
-  var a = this.a * m.a + this.c * m.b;
-  var b = this.b * m.a + this.d * m.b;
-  var c = this.a * m.c + this.c * m.d;
-  var d = this.b * m.c + this.d * m.d;
-  var e = this.a * m.e + this.c * m.f + this.e;
-  var f = this.b * m.e + this.d * m.f + this.f;
-  var s = new Matrix(a,b,c,d,e,f);
+  var s = new Matrix(this.a * m.a + this.c * m.b,this.b * m.a + this.d * m.b,this.a * m.c + this.c * m.d,this.b * m.c + this.d * m.d,this.a * m.e + this.c * m.f + this.e,this.b * m.e + this.d * m.f + this.f);
   return s;
 }
 //行列式
@@ -1724,6 +1723,7 @@
     ut = this._tani[tani];
   }
   this.newValueSpecifiedUnits(ut,v);
+  d = wort = f = v = tani = ut = null; //解放
   }  catch(e) {stlog.add(e,1133); this.value = 1000;}
   return this;
 }
@@ -1807,8 +1807,6 @@
       case "new":
         this.tar.setAttribute("target","_blank");
       break;
-      default:
-      break;
     }
     this.tar.setAttribute("href",uri);
   }
@@ -1855,19 +1853,17 @@
   return xmlhttp;
 }
 var success = true;
-//SVGDocumentを収納しておく
-var STdocument = new Array();
 
 //IE用。object要素のデータからVMLを作成
 function ca( /*object*/ data) {
 if (success  &&  data.success) {
-  var dn = data.num-1;
   try {
-    var obj = data.obj[dn];
+    var obj = data.obj[data.num-1];
     var obw = new STLength(obj.getAttribute("width"),obj.clientWidth),  obh = new STLength(obj.getAttribute("height"),obj.clientHeight);
-    var obwidth = obw.value,  obheight = obh.value;
+    var obwidth = obw.value, obheight = obh.value;
   } catch(e) {stlog.add(e,1209);}
   //正規表現でソースをVML用に書き換え
+  //xmlns属性削除はバグが起きないように必須
   var dc = data.content
     .replace(/<!DOCTYPE/, "<!--")
     .replace(/(?:dtd">|\]>)/, "-->")
@@ -1915,20 +1911,22 @@
   var ob = document.createElement("v:group");
   var obst = ob.style;
   ob.innerHTML = dc;
+  data = dc = null;
   var obc = ob.getElementsByTagName("group").item(0);  //obcはSVGのルート要素
   var regaw = obc.getAttribute("svgwidth") || obwidth;
   var regah = obc.getAttribute("svgheight") || obheight;
-  regw = new STLength(regaw,obwidth);
-  regh = new STLength(regah,obheight);
+  var regw = new STLength(regaw,obwidth);
+  var regh = new STLength(regah,obheight);
   var regwv = regw.value,  reghv = regh.value;
   obst.width = regwv+ "px";
   obst.height = reghv+ "px";
   ob.coordsize = regwv  +" "+  reghv;
-  STdocument[dn] = new SVGtoVML(obc,obwidth,obheight,regw,regh);
+  var STdocument = new SVGtoVML(obc,obwidth,obheight,regw,regh);
   obj.parentNode.insertBefore(ob,obj);
-  STdocument[dn].read(ob);
-  STdocument[dn].set(ob);
-  data = dc = null;
+  STdocument.read(ob);
+  STdocument.set(ob);
+  STdocument = obw = obh = regw = regh = null;
+  NAIBU.PaintColor.prototype.cache = {}; //キャッシュの初期化
   if (NAIBU.STObject !== void 0) {NAIBU.STObject.next();}
 }
 }
@@ -1943,7 +1941,7 @@
     xmlhttp.setRequestHeader("X-Requested-With", "XMLHttpRequest");
     xmlhttp.onreadystatechange = function() {
       if (xmlhttp.readyState === 4  &&  xmlhttp.status === 200) {
-fn({success:true, status:xmlhttp.status,content:xmlhttp.responseText,contentType:xmlhttp.getResponseHeader("Content-Type"),obj:ob,num:n});
+        fn({success:true,content:xmlhttp.responseText,obj:ob,num:n});
         xmlhttp = null;
       }
     }


Property changes on: branches/04x/sie.js
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/04x/041/sie.js:891-923
/branches/04x/042/sie.js:927-967
/branches/04x/043/sie.js:969-1013
/branches/04x/044/sie.js:1015-1067
/branches/04x/045/sie.js:1069-1078
/branches/04x/046/sie.js:1080-1129
   + /branches/04x/041/sie.js:891-923
/branches/04x/042/sie.js:927-967
/branches/04x/043/sie.js:969-1013
/branches/04x/044/sie.js:1015-1067
/branches/04x/045/sie.js:1069-1078
/branches/04x/046/sie.js:1080-1129
/branches/04x/047/sie.js:1131-1164




Sie-announce メーリングリストの案内
Back to archive index