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) {