[Sie-announce] SIEコード [2616] SVGColorのprototypeを整理

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2011年 4月 21日 (木) 23:07:26 JST


Revision: 2616
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2616
Author:   dhrname
Date:     2011-04-21 23:07:26 +0900 (Thu, 21 Apr 2011)

Log Message:
-----------
SVGColorのprototypeを整理

Modified Paths:
--------------
    branches/07x/076/org/w3c/dom/svg.js

Modified: branches/07x/076/org/w3c/dom/svg.js
===================================================================
--- branches/07x/076/org/w3c/dom/svg.js	2011-04-19 12:06:26 UTC (rev 2615)
+++ branches/07x/076/org/w3c/dom/svg.js	2011-04-21 14:07:26 UTC (rev 2616)
@@ -708,19 +708,22 @@
 SVGColor.prototype = new CSSValue();  //ノードのプロトタイプチェーンを作って、継承
 SVGColor.constructor = CSSValue;
 
-/*readonly unsigned short*/ SVGColor.prototype.colorType = /*SVGColor.SVG_COLORTYPE_UNKNOWN*/ 0;
-/*readonly SVGICCColor*/    SVGColor.prototype.iccColor = null;
-/*void*/ SVGColor.prototype.setRGBColor = function(/*DOMString*/ rgbColor ){
+(function(){
+  /*readonly unsigned short*/ this.colorType = /*SVGColor.SVG_COLORTYPE_UNKNOWN*/ 0;
+  /*readonly SVGICCColor*/    this.iccColor = null;
+  this._regD = /\d+/g;
+  this._regDP = /[\d.]+%/g;
+  /*void*/ this.setRGBColor = function(/*DOMString*/ rgbColor ){
   var s,
       _parseInt,
       r, g, b,
       c;
   rgbColor = this._keywords[rgbColor] || rgbColor;
   if (rgbColor.indexOf("%", 5) > 0) {      // %を含むrgb形式の場合
-    rgbColor = rgbColor.replace(/[\d.]+%/g, function(s) {
+    rgbColor = rgbColor.replace(this._regDP, function(s) {
       return Math.round((2.55 * parseFloat(s)));
     });
-    s = rgbColor.match(/\d+/g);
+    s = rgbColor.match(this._regD);
   } else if (rgbColor.indexOf("#") === 0) {  //#を含む場合
     s = [];
     _parseInt = parseInt;
@@ -737,7 +740,7 @@
     s[2] = _parseInt(rgbColor.charAt(5)+rgbColor.charAt(6), 16)+ "";
     r = g = b = null;
   } else {
-    s = rgbColor.match(/\d+/g);
+    s = rgbColor.match(this._regD);
     if (!!!s) { //数値が含まれていなければ強制的に終了
       rgbColor = null;
       return;
@@ -750,7 +753,7 @@
 };
 
 //                    raises( SVGException );
-/*void*/ SVGColor.prototype.setColor =function(/*unsigned short*/ colorType, /*DOMString*/ rgbColor, /*DOMString*/ iccColor ){
+/*void*/ this.setColor =function(/*unsigned short*/ colorType, /*DOMString*/ rgbColor, /*DOMString*/ iccColor ){
   this.colorType = colorType;
   if ((colorType === /*SVGColor.SVG_COLORTYPE_RGBCOLOR*/ 1) || (colorType === /*SVGColor.SVG_COLORTYPE_CURRENTCOLOR*/ 3)) {
     this.setRGBColor(rgbColor);
@@ -759,7 +762,7 @@
 }
 //                    raises( SVGException );
 //色キーワード
-SVGColor.prototype._keywords = {
+this._keywords = {
     aliceblue:    "rgb(240, 248, 255)",
     antiquewhite: "rgb(250, 235, 215)",
     aqua:         "rgb( 0, 255, 255)",
@@ -908,6 +911,7 @@
     yellow:        "rgb(255, 255, 0)",
     yellowgreen:   "rgb(154, 205, 50)"
 };
+}).apply(SVGColor.prototype);
 
 function SVGRect() { 
   /*float*/ this.x      = 0;




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