[Sie-announce] SIEコード [1568] NAIBU. transformToCTMの整理

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2010年 1月 12日 (火) 21:21:19 JST


Revision: 1568
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1568
Author:   dhrname
Date:     2010-01-12 21:21:19 +0900 (Tue, 12 Jan 2010)

Log Message:
-----------
NAIBU.transformToCTMの整理

Modified Paths:
--------------
    branches/05x/058/sie.js

Modified: branches/05x/058/sie.js
===================================================================
--- branches/05x/058/sie.js	2010-01-10 13:55:09 UTC (rev 1567)
+++ branches/05x/058/sie.js	2010-01-12 12:21:19 UTC (rev 1568)
@@ -1467,12 +1467,13 @@
           var outline = document.getElementById("_NAIBU_outline");
           var background = document.createElement("div"), bstyle = background.style;
           bstyle.position = "absolute";
+          bstyle.display = "inline-block";
           bstyle.textAlign = "left"; bstyle.top = "0px"; bstyle.left = "0px"; bstyle.width = this.w+ "px"; bstyle.height = this.h+ "px";
           outline.appendChild(background);
           bstyle.filter = "progid:DXImageTransform.Microsoft.Compositor";
           background.filters.item('DXImageTransform.Microsoft.Compositor').Function = 23;
-          var circle = '<v:shape style="position:relative; antialias:false; top:0px; left:0px;" coordsize="' +this.w+ ' ' +this.h+ '" path="' +ellipse+ '" stroked="f">' +ele.outerHTML+ '</v:shape>';
-          background.innerHTML = '<v:shape style="position:relative; top:0px; left:0px;" coordsize="' +this.w+ ' ' +this.h+ '" path="' +data+ '" stroked="f" fillcolor="' +color[color.length-1]+ '" ></v:shape>';
+          var circle = '<v:shape style="display:inline-block; position:relative; antialias:false; top:0px; left:0px;" coordsize="' +this.w+ ' ' +this.h+ '" path="' +ellipse+ '" stroked="f">' +ele.outerHTML+ '</v:shape>';
+          background.innerHTML = '<v:shape style="display:inline-block; position:relative; top:0px; left:0px;" coordsize="' +this.w+ ' ' +this.h+ '" path="' +data+ '" stroked="f" fillcolor="' +color[color.length-1]+ '" ></v:shape>';
           background.filters[0].apply();
           background.innerHTML = circle;
           background.filters[0].play();
@@ -1559,28 +1560,29 @@
 
 //NAIBU.transformToCTM transform属性を処理。Matrix型に変換
 //あらかじめ正規表現オブジェクトを生成しておく
-NAIBU.comaR = /[A-Za-z]+(?=\s*\()/g;
-NAIBU.listR = /\([^\)]+\)/g;
-NAIBU.degR = /[\-\d\.e]+/g;
+(function(){
+var comaR = /[A-Za-z]+(?=\s*\()/g,
+  listR = /\([^\)]+\)/g,
+  degR = /[\-\d\.e]+/g;
 NAIBU.transformToCTM = function( /*element*/ ele, /*Matrix*/ matrix) {
   try {
   var tft = ele.getAttribute("transform");
   if (tft) {
-    var _naic = NAIBU.comaR, _nail = NAIBU.listR, _naid = NAIBU.degR;
-    var coma = tft.match(_naic); //コマンド文字にマッチ translate
-    var list = tft.match(_nail); //カッコ内のリストにマッチ (10 20 30...)
+    var _parseFloat = parseFloat;
+    var coma = tft.match(comaR); //コマンド文字にマッチ translate
+    var list = tft.match(listR); //カッコ内のリストにマッチ (10 20 30...)
     var a,b,c,d,e,f,lis,deg,rad,degli,matri;
     for (var j=0,cli=coma.length;j<cli;j++) {
       lis = list[j], com = coma[j];
-      deg = lis.match(_naid);
+      deg = lis.match(degR);
       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]);
+        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 {
         rad = parseFloat(deg[0]) / 180 * Math.PI;
         if (degli === 3) {
@@ -1645,6 +1647,7 @@
   }  catch(e) {stlog.add(e,816);}
   return matrix;
 };
+})();
 
 //SVGPointを参照
 function Point( /*number*/ x, /*number*/ y) {




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