svnno****@sourc*****
svnno****@sourc*****
2010年 3月 24日 (水) 23:10:59 JST
Revision: 1751
http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1751
Author: dhrname
Date: 2010-03-24 23:10:59 +0900 (Wed, 24 Mar 2010)
Log Message:
-----------
Modified Paths:
--------------
branches/ufltima/dom/svg.js
Modified: branches/ufltima/dom/svg.js
===================================================================
--- branches/ufltima/dom/svg.js 2010-03-24 14:10:26 UTC (rev 1750)
+++ branches/ufltima/dom/svg.js 2010-03-24 14:10:59 UTC (rev 1751)
@@ -156,7 +156,7 @@
}
style.cssText._rewrite = 1;
}
- }, false)
+ }, true)
this.addEventListener("DOMAttrModified", function(evt){
if (evt.eventPhase === Event.BUBBLING_PHASE) {
return;
@@ -515,7 +515,6 @@
SVGColor.constructor = CSSValue;
/*void*/ SVGColor.prototype.setRGBColor = function(/*DOMString*/ rgbColor ){
- this.cssText = rgbColor;
var tkr = this._keywords[rgbColor];
if (tkr !== void 0) {
rgbColor = tkr;
@@ -533,7 +532,7 @@
this.rgbColor.red.setFloatValue(CSSPrimitiveValue.CSS_NUMBER, parseFloat(s[0]));
this.rgbColor.green.setFloatValue(CSSPrimitiveValue.CSS_NUMBER, parseFloat(s[1]));
this.rgbColor.blue.setFloatValue(CSSPrimitiveValue.CSS_NUMBER, parseFloat(s[2]));
-};
+ };
// raises( SVGException );
/*void*/ SVGColor.prototype.setColor =function(/*unsigned short*/ colorType, /*DOMString*/ rgbColor, /*DOMString*/ iccColor ){
@@ -545,137 +544,153 @@
// raises( SVGException );
//色キーワード
SVGColor.prototype._keywords = {
- aliceblue: "#F0F8FF",
- antiquewhite: "#FAEBD7",
- aquamarine: "#7FFFD4",
- azure: "#F0FFFF",
- beige: "#F5F5DC",
- bisque: "#FFE4C4",
- blanchedalmond: "#FFEBCD",
- blueviolet: "#8A2BE2",
- brown: "#A52A2A",
- burlywood: "#DEB887",
- cadetblue: "#5F9EA0",
- chartreuse: "#7FFF00",
- chocolate: "#D2691E",
- coral: "#FF7F50",
- cornflowerblue: "#6495ED",
- cornsilk: "#FFF8DC",
- crimson: "#DC143C",
- cyan: "#00FFFF",
- darkblue: "#00008B",
- darkcyan: "#008B8B",
- darkgoldenrod: "#B8860B",
- darkgray: "#A9A9A9",
- darkgreen: "#006400",
- darkgrey: "#A9A9A9",
- darkkhaki: "#BDB76B",
- darkmagenta: "#8B008B",
- darkolivegreen: "#556B2F",
- darkorange: "#FF8C00",
- darkorchid: "#9932CC",
- darkred: "#8B0000",
- darksalmon: "#E9967A",
- darkseagreen: "#8FBC8F",
- darkslateblue: "#483D8B",
- darkslategray: "#2F4F4F",
- darkslategrey: "#2F4F4F",
- darkturquoise: "#00CED1",
- darkviolet: "#9400D3",
- deeppink: "#FF1493",
- deepskyblue: "#00BFFF",
- dimgray: "#696969",
- dimgrey: "#696969",
- dodgerblue: "#1E90FF",
- firebrick: "#B22222",
- floralwhite: "#FFFAF0",
- forestgreen: "#228B22",
- gainsboro: "#DCDCDC",
- ghostwhite: "#F8F8FF",
- gold: "#FFD700",
- goldenrod: "#DAA520",
- grey: "#808080",
- greenyellow: "#ADFF2F",
- honeydew: "#F0FFF0",
- hotpink: "#FF69B4",
- indianred: "#CD5C5C",
- indigo: "#4B0082",
- ivory: "#FFFFF0",
- khaki: "#F0E68C",
- lavender: "#E6E6FA",
- lavenderblush: "#FFF0F5",
- lawngreen: "#7CFC00",
- lemonchiffon: "#FFFACD",
- lightblue: "#ADD8E6",
- lightcoral: "#F08080",
- lightcyan: "#E0FFFF",
- lightgoldenrodyellow: "#FAFAD2",
- lightgray: "#D3D3D3",
- lightgreen: "#90EE90",
- lightgrey: "#D3D3D3",
- lightpink: "#FFB6C1",
- lightsalmon: "#FFA07A",
- lightseagreen: "#20B2AA",
- lightskyblue: "#87CEFA",
- lightslategray: "#778899",
- lightslategrey: "#778899",
- lightsteelblue: "#B0C4DE",
- lightyellow: "#FFFFE0",
- limegreen: "#32CD32",
- linen: "#FAF0E6",
- magenta: "#FF00FF",
- mediumaquamarine: "#66CDAA",
- mediumblue: "#0000CD",
- mediumorchid: "#BA55D3",
- mediumpurple: "#9370DB",
- mediumseagreen: "#3CB371",
- mediumslateblue: "#7B68EE",
- mediumspringgreen: "#00FA9A",
- mediumturquoise: "#48D1CC",
- mediumvioletred: "#C71585",
- midnightblue: "#191970",
- mintcream: "#F5FFFA",
- mistyrose: "#FFE4E1",
- moccasin: "#FFE4B5",
- navajowhite: "#FFDEAD",
- oldlace: "#FDF5E6",
- olivedrab: "#6B8E23",
- orange: "#FFA500",
- orangered: "#FF4500",
- orchid: "#DA70D6",
- palegoldenrod: "#EEE8AA",
- palegreen: "#98FB98",
- paleturquoise: "#AFEEEE",
- palevioletred: "#DB7093",
- papayawhip: "#FFEFD5",
- peachpuff: "#FFDAB9",
- peru: "#CD853F",
- pink: "#FFC0CB",
- plum: "#DDA0DD",
- powderblue: "#B0E0E6",
- rosybrown: "#BC8F8F",
- royalblue: "#4169E1",
- saddlebrown: "#8B4513",
- salmon: "#FA8072",
- sandybrown: "#F4A460",
- seagreen: "#2E8B57",
- seashell: "#FFF5EE",
- sienna: "#A0522D",
- skyblue: "#87CEEB",
- slateblue: "#6A5ACD",
- slategray: "#708090",
- slategrey: "#708090",
- snow: "#FFFAFA",
- springgreen: "#00FF7F",
- steelblue: "#4682B4",
- tan: "#D2B48C",
- thistle: "#D8BFD8",
- tomato: "#FF6347",
- turquoise: "#40E0D0",
- violet: "#EE82EE",
- wheat: "#F5DEB3",
- whitesmoke: "#F5F5F5",
- yellowgreen: "#9ACD32"
+ aliceblue: "rgb(240, 248, 255)",
+ antiquewhite: "rgb(250, 235, 215)",
+ aqua: "rgb( 0, 255, 255)",
+ aquamarine: "rgb(127, 255, 212)",
+ azure: "rgb(240, 255, 255)",
+ beige: "rgb(245, 245, 220)",
+ bisque: "rgb(255, 228, 196)",
+ black: "rgb( 0, 0, 0)",
+ blanchedalmond:"rgb(255, 235, 205)",
+ blue: "rgb( 0, 0, 255)",
+ blueviolet: "rgb(138, 43, 226)",
+ brown: "rgb(165, 42, 42)",
+ burlywood: "rgb(222, 184, 135)",
+ cadetblue: "rgb( 95, 158, 160)",
+ chartreuse: "rgb(127, 255, 0)",
+ chocolate: "rgb(210, 105, 30)",
+ coral: "rgb(255, 127, 80)",
+ cornflowerblue:"rgb(100, 149, 237)",
+ cornsilk: "rgb(255, 248, 220)",
+ crimson: "rgb(220, 20, 60)",
+ cyan: "rgb( 0, 255, 255)",
+ darkblue: "rgb( 0, 0, 139)",
+ darkcyan: "rgb( 0, 139, 139)",
+ darkgoldenrod:"rgb(184, 134, 11)",
+ darkgray: "rgb(169, 169, 169)",
+ darkgreen: "rgb( 0, 100, 0)",
+ darkgrey: "rgb(169, 169, 169)",
+ darkkhaki: "rgb(189, 183, 107)",
+ darkmagenta: "rgb(139, 0, 139)",
+ darkolivegreen:"rgb( 85, 107, 47)",
+ darkorange: "rgb(255, 140, 0)",
+ darkorchid: "rgb(153, 50, 204)",
+ darkred: "rgb(139, 0, 0)",
+ darksalmon: "rgb(233, 150, 122)",
+ darkseagreen: "rgb(143, 188, 143)",
+ darkslateblue:"rgb( 72, 61, 139)",
+ darkslategray:"rgb( 47, 79, 79)",
+ darkslategrey:"rgb( 47, 79, 79)",
+ darkturquoise:"rgb( 0, 206, 209)",
+ darkviolet: "rgb(148, 0, 211)",
+ deeppink: "rgb(255, 20, 147)",
+ deepskyblue: "rgb( 0, 191, 255)",
+ dimgray: "rgb(105, 105, 105)",
+ dimgrey: "rgb(105, 105, 105)",
+ dodgerblue: "rgb( 30, 144, 255)",
+ firebrick: "rgb(178, 34, 34)",
+ floralwhite: "rgb(255, 250, 240)",
+ forestgreen: "rgb( 34, 139, 34)",
+ fuchsia: "rgb(255, 0, 255)",
+ gainsboro: "rgb(220, 220, 220)",
+ ghostwhite: "rgb(248, 248, 255)",
+ gold: "rgb(255, 215, 0)",
+ goldenrod: "rgb(218, 165, 32)",
+ gray: "rgb(128, 128, 128)",
+ grey: "rgb(128, 128, 128)",
+ green: "rgb( 0, 128, 0)",
+ greenyellow: "rgb(173, 255, 47)",
+ honeydew: "rgb(240, 255, 240)",
+ hotpink: "rgb(255, 105, 180)",
+ indianred: "rgb(205, 92, 92)",
+ indigo: "rgb( 75, 0, 130)",
+ ivory: "rgb(255, 255, 240)",
+ khaki: "rgb(240, 230, 140)",
+ lavender: "rgb(230, 230, 250)",
+ lavenderblush:"rgb(255, 240, 245)",
+ lawngreen: "rgb(124, 252, 0)",
+ lemonchiffon: "rgb(255, 250, 205)",
+ lightblue: "rgb(173, 216, 230)",
+ lightcoral: "rgb(240, 128, 128)",
+ lightcyan: "rgb(224, 255, 255)",
+ lightgoldenrodyellow:"rgb(250, 250, 210)",
+ lightgray: "rgb(211, 211, 211)",
+ lightgreen: "rgb(144, 238, 144)",
+ lightgrey: "rgb(211, 211, 211)",
+ lightpink: "rgb(255, 182, 193)",
+ lightsalmon: "rgb(255, 160, 122)",
+ lightseagree: "rgb( 32, 178, 170)",
+ lightskyblue: "rgb(135, 206, 250)",
+ lightslategray:"rgb(119, 136, 153)",
+ lightslategrey:"rgb(119, 136, 153)",
+ lightsteelblue:"rgb(176, 196, 222)",
+ lightyellow: "rgb(255, 255, 224)",
+ lime: "rgb( 0, 255, 0)",
+ limegreen: "rgb( 50, 205, 50)",
+ linen: "rgb(250, 240, 230)",
+ magenta: "rgb(255, 0, 255)",
+ maroon: "rgb(128, 0, 0)",
+ mediumaquamarine:"rgb(102, 205, 170)",
+ mediumblue: "rgb( 0, 0, 205)",
+ mediumorchid: "rgb(186, 85, 211)",
+ mediumpurple: "rgb(147, 112, 219)",
+ mediumseagreen:"rgb( 60, 179, 113)",
+ mediumslateblue:"rgb(123, 104, 238)",
+ mediumspringgreen:"rgb( 0, 250, 154)",
+ mediumturquoise:"rgb( 72, 209, 204)",
+ mediumvioletred:"rgb(199, 21, 133)",
+ midnightblue: "rgb( 25, 25, 112)",
+ mintcream: "rgb(245, 255, 250)",
+ mistyrose: "rgb(255, 228, 225)",
+ moccasin: "rgb(255, 228, 181)",
+ navajowhite: "rgb(255, 222, 173)",
+ navy: "rgb( 0, 0, 128)",
+ oldlace: "rgb(253, 245, 230)",
+ olive: "rgb(128, 128, 0)",
+ olivedrab: "rgb(107, 142, 35)",
+ orange: "rgb(255, 165, 0)",
+ orangered: "rgb(255, 69, 0)",
+ orchid: "rgb(218, 112, 214)",
+ palegoldenrod: "rgb(238, 232, 170)",
+ palegreen: "rgb(152, 251, 152)",
+ paleturquoise: "rgb(175, 238, 238)",
+ palevioletred: "rgb(219, 112, 147)",
+ papayawhip: "rgb(255, 239, 213)",
+ peachpuff: "rgb(255, 218, 185)",
+ peru: "rgb(205, 133, 63)",
+ pink: "rgb(255, 192, 203)",
+ plum: "rgb(221, 160, 221)",
+ powderblue: "rgb(176, 224, 230)",
+ purple: "rgb(128, 0, 128)",
+ red: "rgb(255, 0, 0)",
+ rosybrown: "rgb(188, 143, 143)",
+ royalblue: "rgb( 65, 105, 225)",
+ saddlebrown: "rgb(139, 69, 19)",
+ salmon: "rgb(250, 128, 114)",
+ sandybrown: "rgb(244, 164, 96)",
+ seagreen: "rgb( 46, 139, 87)",
+ seashell: "rgb(255, 245, 238)",
+ sienna: "rgb(160, 82, 45)",
+ silver: "rgb(192, 192, 192)",
+ skyblue: "rgb(135, 206, 235)",
+ slateblue: "rgb(106, 90, 205)",
+ slategray: "rgb(112, 128, 144)",
+ slategrey: "rgb(112, 128, 144)",
+ snow: "rgb(255, 250, 250)",
+ springgreen: "rgb( 0, 255, 127)",
+ steelblue: "rgb( 70, 130, 180)",
+ tan: "rgb(210, 180, 140)",
+ teal: "rgb( 0, 128, 128)",
+ thistle: "rgb(216, 191, 216)",
+ tomato: "rgb(255, 99, 71)",
+ turquoise: "rgb( 64, 224, 208)",
+ violet: "rgb(238, 130, 238)",
+ wheat: "rgb(245, 222, 179)",
+ white: "rgb(255, 255, 255)",
+ whitesmoke: "rgb(245, 245, 245)",
+ yellow: "rgb(255, 255, 0)",
+ yellowgreen: "rgb(154, 205, 50)"
};
function SVGRect() {
@@ -1136,16 +1151,16 @@
var obje = document.getElementsByTagName("object");
for (var i=0, objli=1;i<objli;++i) {
var objei = {style:{}};//obje[i];
- xmlhttp.open("GET", "4wd.svg", true);//objei.getAttribute("data"), true);
+ xmlhttp.open("GET", "tiger.svg", true);//objei.getAttribute("data"), true);
xmlhttp.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
/*SVGDocument*/ objei.getSVGDocument = function(){
- var dew = new Date();
/*responseXMLを使うと、時々、空のデータを返すことがあるため(原因は不明)、
*ここでは、responseTextを用いる
*/
var doc = new ActiveXObject("MSXML2.DomDocument");
+ var dew = new Date();
str = xmlhttp.responseText.replace(/!DOCTYPE/,"!--").replace(/(dtd">|\]>)/,"-->");
doc.loadXML(str);
var s = DOMImplementation.createDocument("http://www.w3.org/2000/svg", "svg");
@@ -1983,8 +1998,8 @@
if (fill.paintType === SVGPaint.SVG_PAINTTYPE_RGBCOLOR || fill.paintType === SVGPaint.SVG_PAINTTYPE_CURRENTCOLOR) {
var fillElement = document.createElement("v:fill");
var isRadial = false;
- var fc = fill.rgbColor;
- fillElement.setAttribute("color", "rgb(" +fc.red.getFloatValue()+ "," +fc.green.getFloatValue()+ "," +fc.blue.getFloatValue()+ ")");
+ var fc = fill.rgbColor, num = CSSPrimitiveValue.CSS_NUMBER;
+ fillElement.setAttribute("color", "rgb(" +fc.red.getFloatValue(num)+ "," +fc.green.getFloatValue(num)+ "," +fc.blue.getFloatValue(num)+ ")");
var fillOpacity = parseFloat(style.getPropertyValue("fill-opacity")) * parseFloat(style.getPropertyValue("opacity")); //opacityを掛け合わせる
if (fillOpacity < 1) {
fillElement.setAttribute("opacity", fillOpacity+"");
@@ -1992,7 +2007,7 @@
if (!isRadial) {
el.appendChild(fillElement);
}
- isRadial = fillOpacity = null;
+ fc = isRadial = fillOpacity = null;
}
if (stroke.paintType === SVGPaint.SVG_PAINTTYPE_RGBCOLOR || stroke.paintType === SVGPaint.SVG_PAINTTYPE_CURRENTCOLOR) {
var strokeElement = document.createElement("v:stroke");
@@ -2000,8 +2015,8 @@
var swx = sw.value * Math.sqrt(Math.abs(matrix._determinant()));
strokeElement.setAttribute("weight", swx + "px");
if (!stroke.uri) {
- var fc = stroke.rgbColor;
- strokeElement.setAttribute("color", "rgb(" +fc.red.getFloatValue()+ "," +fc.green.getFloatValue()+ "," +fc.blue.getFloatValue()+ ")");
+ var fc = stroke.rgbColor, num = CSSPrimitiveValue.CSS_NUMBER;
+ strokeElement.setAttribute("color", "rgb(" +fc.red.getFloatValue(num)+ "," +fc.green.getFloatValue(num)+ "," +fc.blue.getFloatValue(num)+ ")");
var strokeOpacity = parseFloat(style.getPropertyValue("stroke-opacity")) * parseFloat(style.getPropertyValue("opacity")); //opacityを掛け合わせる
if (swx < 1) {
strokeOpacity *= swx; //太さが1px未満なら色を薄くする
@@ -2009,7 +2024,7 @@
if (strokeOpacity < 1) {
strokeElement.setAttribute("opacity", strokeOpacity);
}
- strokeOpacity = null;
+ fc = num = strokeOpacity = null;
}
strokeElement.setAttribute("miterlimit", style.getPropertyValue("stroke-miterlimit"));
strokeElement.setAttribute("joinstyle", style.getPropertyValue("stroke-linejoin"));