svnno****@sourc*****
svnno****@sourc*****
2009年 3月 21日 (土) 23:11:09 JST
Revision: 1100
http://svn.sourceforge.jp/view?root=sie&view=rev&rev=1100
Author: dhrname
Date: 2009-03-21 23:11:09 +0900 (Sat, 21 Mar 2009)
Log Message:
-----------
NAIBU.PaintColor.prototype.gradientの整理
Modified Paths:
--------------
branches/04x/046/sie.js
Modified: branches/04x/046/sie.js
===================================================================
--- branches/04x/046/sie.js 2009-03-20 12:51:50 UTC (rev 1099)
+++ branches/04x/046/sie.js 2009-03-21 14:11:09 UTC (rev 1100)
@@ -999,7 +999,7 @@
try {
if (this._urlreg.test(this.fill)) { //fill属性の値がurl(#id)ならば、idを設定したグラデーション関連要素を呼び出す
this.w = w; this.h = h; //radialGradientで必要
- isRadial = this.gradient(fillElement, RegExp.$1, el.getAttribute("path"), el.currentStyle.width, el.currentStyle.height);
+ isRadial = this.gradient(fillElement, RegExp.$1);
} else {
fillElement.setAttribute("color", this.color(this.fill));
var fillOpacity = this.fillopacity * this.opacity; //opacityを掛け合わせる
@@ -1210,7 +1210,7 @@
return color;
}
//linearGradient、radialGradient要素を処理
-NAIBU.PaintColor.prototype.gradient = function pcgradient( /*element*/ ele, /*string*/ id, /*string*/ data) {
+NAIBU.PaintColor.prototype.gradient = function pcgradient( /*element*/ ele, /*string*/ id) {
var grad = document.getElementById(id);
if (grad) {
var grad2 = grad;
@@ -1263,12 +1263,13 @@
var cy = parseFloat((grad.getAttribute("cy") || "0.5").replace(/%/, ""));
var r = rx = ry = parseFloat((grad.getAttribute("r") || "0.5").replace(/%/, ""));
var el = this.w, et = this.h, er = 0, eb = 0;
+ var data = this.tar.getAttribute("path")+"";
var units = grad.getAttribute("gradientUnits");
if (!units || units === "objectBoundingBox") {
//%の場合は小数点に変換(10% -> 0.1)
cx = cx > 1 ? cx/100 : cx; cy = cy > 1 ? cy/100 : cy; r = r > 1 ? r/100 : r;
//要素の境界領域を求める(四隅の座標を求める)
- var degis = (this.tar.getAttribute("path")+"").match(/[0-9\-]+/g);
+ var degis = data.match(/[0-9\-]+/g);
for (var i=0,degisli=degis.length;i<degisli;i+=2) {
var nx = parseInt(degis[i]), ny = parseInt(degis[i+1]);
el = el > nx ? nx : el;