svnno****@sourc*****
svnno****@sourc*****
2009年 5月 3日 (日) 22:11:41 JST
Revision: 1130 http://svn.sourceforge.jp/view?root=sie&view=rev&rev=1130 Author: dhrname Date: 2009-05-03 22:11:41 +0900 (Sun, 03 May 2009) Log Message: ----------- 0.46統合 Modified Paths: -------------- branches/04x/sie.js Property Changed: ---------------- branches/04x/sie.js Modified: branches/04x/sie.js =================================================================== --- branches/04x/sie.js 2009-05-03 13:05:09 UTC (rev 1129) +++ branches/04x/sie.js 2009-05-03 13:11:41 UTC (rev 1130) @@ -80,6 +80,9 @@ NAIBU.STObject = new Objectembeds(); if (isMSIE) { setVMLNameSpace(); + var oba = document.createElement("div"); + oba.setAttribute("id","_NAIBU_outline"); + document.body.appendChild(oba); NAIBU.STObject.next(); success = true; } else if (/a/[-1] === 'a'){ //Firefoxだったらtrueを返す @@ -94,14 +97,20 @@ //vmlの名前空間をセット(必須) function setVMLNameSpace() { - document.namespaces.add("v","urn:schemas-microsoft-com:vml"); - document.namespaces.add("o","urn:schemas-microsoft-com:office:office"); - var st = document.createStyleSheet(); - st.addRule("v\\:*","behavior: url(#default#VML);display:inline-block;");//inline-blockはIEのバグ対策 - st.addRule("o\\:*","behavior: url(#default#VML);display:inline-block"); - st.addRule("dn\\:*","display:none"); - st.addRule("v\\:group", "position:relative;width:100%;height:100%;"); - st.addRule("v\\:shape", "width:100%;height:100%;"); + if (!document.namespaces["v"]) { + document.namespaces.add("v","urn:schemas-microsoft-com:vml"); + document.namespaces.add("o","urn:schemas-microsoft-com:office:office"); + var st = document.createStyleSheet(); + var vmlUrl = "behavior: url(#default#VML);display:inline-block;"; //inline-blockはIEのバグ対策 + st.addRule("v\\:rect",vmlUrl); + st.addRule("v\\:image",vmlUrl); + st.addRule("v\\:fill",vmlUrl); + st.addRule("v\\:stroke",vmlUrl); + st.addRule("o\\:opacity2",vmlUrl); + st.addRule("dn\\:defs","display:none"); + st.addRule("v\\:group", vmlUrl+ "position:relative;width:100%;height:100%;"); + st.addRule("v\\:shape", vmlUrl+ "width:100%;height:100%;"); + } } //windowに指定したイベントと関数を追加 @@ -139,14 +148,14 @@ this.rootElement = obc; this.w = w; this.h = h; this.swi = swi; this.shi = shi; return this; } -SVGtoVML.prototype.read = function stvread() { +SVGtoVML.prototype.read = function stvread(/*element*/ ob) { this.rootElement.style.visibility = "hidden"; this.vi = new STViewSpec(this.rootElement); try{ this.children = []; //子要素 var sw = this.swi.value, sh = this.shi.value; this.getObject("USE", STUseElement, "use", sw, sh); //use要素を先に処理 - var mat = this.vi.set(sw, sh); //返り値はMatrix型 + var mat = this.vi.set(sw, sh, ob); //返り値はMatrix型 this.chset(this.rootElement, mat, sw, sh); } catch(n) {stlog.add(n,109);} } @@ -161,57 +170,57 @@ } catch(e) {stlog.add(e,129); } } -SVGtoVML.prototype.set = function stvset() { +SVGtoVML.prototype.set = function stvset(ob) { var w = this.w, h = this.h, c = this.children; - var sw = this.swi.value, sh = this.shi.value; - try { + var sw = this.swi.value, sh = this.shi.value; this.setObject(this.use,sw,sh); this.setObject(c,sw,sh); + try { var backr = document.createElement("v:rect"); //背景の作成 backr.style.position = "absolute"; - backr.style.width = w; - backr.style.height = h; + backr.style.width = w+ "px"; + backr.style.height = h+ "px"; backr.style.zIndex = -1; - backr.setAttribute("stroked", "false"); - backr.setAttribute("filled", "false"); + backr.stroked = "false"; + backr.filled = "false"; this.rootElement.appendChild(backr); var trstyle = this.rootElement.style; - var tpstyle = this.rootElement.parentNode.style; + var tpstyle = ob.style; trstyle.visibility = "visible"; //以下、画像を切り取り trstyle.overflow = "hidden"; var backrs = backr.currentStyle; - var viewWidth = w > sw ? sw : w; - var viewHeight = h > sh ? sh : h; + var viewWidth = w > sw ? sw : w, viewHeight = h > sh ? sh : h; var bfl = parseFloat(backrs.left), bft = parseFloat(backrs.top); - var bl = -this.vi._tx - var bt = -this.vi._ty; - if (bfl !== 0) { //内部の図形にずれが生じたとき + var bl = -this.vi._tx, bt = -this.vi._ty; + if (bfl !== 0 && !isNaN(bfl)) { //内部の図形にずれが生じたとき(isNaNはIE8でautoがデフォルト値のため) bl = bfl; - tpstyle.left = -bl; + tpstyle.left = -bl+ "px"; } - if (bft !== 0) { + if (bft !== 0 && !isNaN(bfl)) { bt = bft; - tpstyle.top = -bt; + tpstyle.top = -bt+ "px"; } var backright = bl + viewWidth + 1; var backdown = bt + viewHeight + 1; - trstyle.clip = "rect(" +bt+ " " +backright+ "px " +backdown+ "px " +bl+ ")"; + trstyle.clip = "rect(" +bt+ "px " +backright+ "px " +backdown+ "px " +bl+ "px)"; //以下、テキストの位置を修正 var text = this.rootElement.getElementsByTagName("div"); for (var i=0,textli=text.length;i<textli;++i) { var texti = text[i]; - var tis = texti.style; - tis.left = parseFloat(tis.left) + bl; - tis.top = parseFloat(tis.top) + bt; - var tp = texti.parentNode; - while (tp.nodeName === "group") { //group要素である限り、さかのぼる - tp = tp.parentNode; + if (texti.firstChild.nodeName !== "shape") { //radialGradient用のdiv要素でないならば + var tis = texti.style; + tis.left = parseFloat(tis.left) + bl + "px"; + tis.top = parseFloat(tis.top) + bt + "px"; + var tp = texti.parentNode; + while (tp.nodeName === "group") { //group要素である限り、さかのぼる + tp = tp.parentNode; + } + if (tp.nodeName === "A") { //先祖要素がa要素ならば + tis.marginLeft = -parseFloat(tis.fontSize)+ "px"; + tis.cursor = "hand"; + } } - if (tp.nodeName === "A") { //先祖要素がa要素ならば - tis.marginLeft = -parseFloat(tis.fontSize); - tis.cursor = "hand"; - } } } catch(e) {stlog.add(e,138);} } @@ -343,7 +352,7 @@ STGroupElement.prototype.set = function (sw,sh) { try{ stvsetob(this.children,sw,sh); - this.children = null; + delete (this.children); } catch(e){stlog.addd(e,3145)} } STGroupElement.prototype.chset = SVGtoVML.prototype.chset; @@ -366,8 +375,8 @@ this.xlink.set(); var txts = this.xlink.tar.style; txts.cursor = "hand"; - txts.left = 0; - txts.top = 0; + txts.left = "0px"; + txts.top = "0px"; txts.textDecoration = "none"; } catch(e) {stlog.add(e,204);} } @@ -402,42 +411,42 @@ if (ttp.lastChild.nodeName !== "rect") { var backr = document.createElement("v:rect"); var backrs = backr.style; //ずれを修正するためのもの - backrs.width = 1; - backrs.height = 1; - backrs.left = 0; - backrs.top = 0; - backr.setAttribute("stroked", "false"); - backr.setAttribute("filled", "false"); + backrs.width = "1px"; + backrs.height = "1px"; + backrs.left = "0px"; + backrs.top = "0px"; + backr.stroked = "false"; + backr.filled = "false"; ttp.appendChild(backr); } - tts.width = 0; - tts.height = 0; + tts.width = "0px"; + tts.height = "0px"; this.paint.fset(w,h,ttm); } catch(e) {stlog.add(e,236);} try { //以下は、テキストの幅であるtextLengthを算出する var arr = this.tspan, textLength = 0, fontSize = this.paint.fontSize, atfontSize = 0, fij = /[fijlt.,:;]/g; //fontSizeは親要素の文字サイズ。atfontSizeは各span要素のサイズ。 - for (var i=0,arri=arr.length;i<arri;++i) { + for (var i=0,s={dx:0,dy:0},arri=arr.length;i<arri;++i) { var ari = arr[i]; ari.paint.fset(w,h,ari.transformable); var atps = ari.tar.previousSibling; if (atps && atps !== void 0) { if (atps.nodeType === 3) { //tspan要素の前がText Nodeならば var ad = atps.data; - var alm = ad.match(fij) ? ad.match(fij).length : 0; //iなどはカーニング調整をする + var alm = fij.test(ad) ? ad.match(fij).length : 0; //iなどはカーニング調整をする textLength += (2 * ad.length - alm) * fontSize / 2; } else { var ai = atps.innerText; - var alm = ai.match(fij) ? ai.match(fij).length : 0; + var alm = fij.test(ad) ? ai.match(fij).length : 0; textLength += (2 * ai.length - alm) * atfontSize / 2; } } atfontSize = ari.paint.fontSize; - ari.set(w,h,textLength); + s = ari.set(w,h,s); } if (arr.length === 0) { //tspan要素がなければ var tti = this.tar.innerText; - var alm = tti.match(fij) ? tti.match(fij).length : 0; + var alm = fij.test(tti) ? tti.match(fij).length : 0; textLength = (2 * tti.length - alm) * fontSize / 2; } //以下はtext-anchorプロパティをサポートする。 @@ -454,8 +463,8 @@ } tts.left = ptm.x - tancx; tts.top = ptm.y - tancy; - p = ptm = tancx = tancy = null; - this.textLength = textLength; + p = ptm = tancx = tancy = null; + this.textLength = textLength; } catch(e) {stlog.add(e,2831);} } //fontset フォントの大きさを幅と高さを使ってpx単位に変換 @@ -480,21 +489,24 @@ this.transformable = NAIBU.transformToCTM(ele, matrix); return this; } -STTSpanElement.prototype.set = function(w, h, textLength) { +//ddはずれの値を持つオブジェクトをあらわす +STTSpanElement.prototype.set = function(w, h, dd) { try { var tts = this.tar.style; tts.position = "relative"; - tts.left = this.dx ? this.dx.value : 0; - tts.top = this.dy ? this.dy.value : 0; + tts.left = (this.dx ? this.dx.value : 0) + dd.dx+ "px"; + tts.top = (this.dy ? this.dy.value : 0) + dd.dy+ "px"; var p, ptm; if (this.x && this.y) { //x属性とy属性が指定されていたならば(注:仕様と相違がある可能性?)。 p = new Point(this.x.value, this.y.value); ptm = p.matrixTransform(this.transformable); tts.position = "absolute"; - tts.left = ptm.x; - tts.top = ptm.y; + tts.left = ptm.x+ "px"; + tts.top = ptm.y+ "px"; } p = ptm = null; + //ずれの値を返す + return {dx : parseFloat(tts.left), dy : parseFloat(tts.top)} } catch(e) {stlog.add(e,304);} } @@ -517,8 +529,8 @@ var plm = pl.matrixTransform(ttm); var dat = plm.list.join(" "); var ele = this.tar; - ele.setAttribute("path", dat); - ele.setAttribute("coordsize", w + " " + h); + ele.path = dat; + ele.coordsize = w + " " + h; this.paint.set(w, h, ttm); list = pl = plm = dat = null; } catch(e) {stlog.add(e,257);} @@ -606,7 +618,7 @@ var Fli = F.length; x = F[Fli-2]; y = F[Fli-1]; - var _x, _y; + var _x, _y; //この変数は初期化されないために必要 for (var j = 1; j < Fli; j += 2) { //CTMで座標変換 _x = parseInt(tma * F[j] + tmc * F[j+1] + tme, 10); _y = parseInt(tmb * F[j] + tmd * F[j+1] + tmf, 10); @@ -624,8 +636,8 @@ } catch(e) {if(this.d == ""){/*d属性が空*/}else{stlog.add(e,355);}} try { var ele = this.tar; - ele.setAttribute("path", dat + " e"); - ele.setAttribute("coordsize", w + " " + h); + ele.path = dat + " e"; + ele.coordsize = w + " " + h; this.paint.set(w, h, ttm); dat = this.paint = this.d = preCom = x = y = x0 = y0 = dx = dy = tma = tmb = tmc = tmd = tme = tmf = null; //解放 } catch(e) {stlog.add(e,372);} @@ -690,8 +702,8 @@ } catch(e) {stlog.add(e,395);} try { var ele = this.tar; - ele.setAttribute("path", dat); - ele.setAttribute("coordsize", w + " " + h); + ele.path = dat; + ele.coordsize = w + " " + h; this.paint.set(w, h, ttm); } catch(e) {stlog.add(e,406);} } @@ -716,8 +728,8 @@ } catch(e) {stlog.add(e,429);} try { var ele = this.tar; - ele.setAttribute("path", dat); - ele.setAttribute("coordsize", w + " " + h); + ele.path = dat; + ele.coordsize = w + " " + h; this.paint.set(w, h, ttm); } catch(e) {stlog.add(e,440);} } @@ -748,8 +760,8 @@ } catch(e) {stlog.add(e,468);} try { var ele = this.tar; - ele.setAttribute("path", dat); - ele.setAttribute("coordsize", w + " " + h); + ele.path = dat; + ele.coordsize = w + " " + h; this.paint.set(w, h, ttm); } catch(e) {stlog.add(e,479);} } @@ -780,8 +792,8 @@ } catch(e) {stlog.add(e,508);} try { var ele = this.tar; - ele.setAttribute("path", dat); - ele.setAttribute("coordsize", w + " " + h); + ele.path = dat; + ele.coordsize = w + " " + h; this.paint.set(w, h, ttm); } catch(e) {stlog.add(e,519);} } @@ -830,8 +842,8 @@ } catch(e) {stlog.add(e,564);} try { var ele = this.tar; - ele.setAttribute("path", dat); - ele.setAttribute("coordsize", w + " " + h); + ele.path = dat; + ele.coordsize = w + " " + h; this.paint.set(w, h, ttm); } catch(ee) {stlog.add(ee,576);} } @@ -856,10 +868,10 @@ ts.position = "absolute"; var pt = new Point(this.x.value, this.y.value); var ptt = pt.matrixTransform(ttm); - ts.left = ptt.x; - ts.top = ptt.y; - ts.width = this.width.value * ttm.a; - ts.height = this.height.value * ttm.d; + ts.left = ptt.x+ "px"; + ts.top = ptt.y+ "px"; + ts.width = this.width.value * ttm.a+ "px"; + ts.height = this.height.value * ttm.d+ "px"; if (ttm.b !== 0 || ttm.c !== 0 || this.paint.fillopacity != 1) {//フィルター プロパティを使うと、PNGの透過性がなくなるので注意 ts.filter = "progid:DXImageTransform.Microsoft.Matrix progid:DXImageTransform.Microsoft.Alpha"; var ttfi = this.tar.filters.item('DXImageTransform.Microsoft.Matrix'); @@ -890,7 +902,7 @@ this.xlink.set(); tns.setAttribute("transform", ts+ " translate(" +this.x.value+ "," +this.y.value+ ")"); tns.firstChild.setAttribute("id",""); - tns.setAttribute("coordorgin","0 0"); + tns.coordorgin = "0 0"; this.paint = new NAIBU.PaintColor(this.xlink.resource); this.paint.tar = tns; return this; @@ -898,6 +910,7 @@ STUseElement.prototype.set = function(){ try { this.paint.setStyle(); + this.paint = this.xlink = null; } catch(e) {stlog.add(e,85436);} } @@ -991,14 +1004,14 @@ NAIBU.PaintColor.prototype.set = function pcset(/*float*/ w, /*float*/ h, /*Matrix*/ matrix) { var el = this.tar; if (this.fill === "none") { - el.setAttribute("filled", "false"); + el.filled = "false"; } else { var fillElement = document.createElement("v:fill"); var isRadial = false; 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, matrix); } else { fillElement.setAttribute("color", this.color(this.fill)); var fillOpacity = this.fillopacity * this.opacity; //opacityを掛け合わせる @@ -1006,15 +1019,15 @@ fillElement.setAttribute("opacity", fillOpacity); } } - } catch(e) {stlog.add(e,682); fillElement.setAttribute("on", "true"); - fillElement.setAttribute("color", "black");} + } catch(e) {stlog.add(e,682); fillElement.on = "true"; + fillElement.color = "black";} if (!isRadial) { el.appendChild(fillElement); } isRadial = fillOpacity = null; } if (this.stroke === "none") { - el.setAttribute("stroked", "false"); + el.stroked = "false"; } else { var strokeElement = document.createElement("v:stroke"); try { @@ -1054,7 +1067,7 @@ } strokeElement.setAttribute("dashstyle", this.strokedasharray); } - } catch(e) {stlog.add(e,720); strokeElement.setAttribute("on", "false");} + } catch(e) {stlog.add(e,720); strokeElement.on = "false";} el.appendChild(strokeElement); sw = tsd = null; } @@ -1209,7 +1222,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, /*Matrix*/ matrix) { var grad = document.getElementById(id); if (grad) { var grad2 = grad; @@ -1219,7 +1232,7 @@ } var stops = grad2.getElementsByTagName("stop"); if (!stops) { - return; + return false; } var length = stops.length; var color = [], colors = [], opacity = []; @@ -1257,44 +1270,57 @@ ele.setAttribute("type", "gradientTitle"); ele.setAttribute("focus", "100%"); ele.setAttribute("focusposition", "0.5 0.5"); + if (this.tar.getAttribute("tag") === "rect") { var cx = parseFloat((grad.getAttribute("cx") || "0.5").replace(/%/, "")); 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; et = et > ny ? ny : et; er = er > nx ? er : nx; - eb = eb > ny ? eb : ny; + eb = eb > ny ? eb : ny; nx = ny = null; } degis = null; cx = cx*(er - el) + el; cy = cy*(eb - et) + et; rx = r*(er - el); ry = r*(eb - et); } + var gt = grad.getAttribute("gradientTransform"); + if (gt) { + grad.setAttribute("transform",gt); + matrix = NAIBU.transformToCTM(grad, matrix); + } el = cx - rx; et = cy - ry; er = cx + rx; eb = cy + ry; + var rrx = rx * 0.55228, rry = ry * 0.55228; + var list = ["m", cx,et, "c", cx-rrx,et, el,cy-rry, el,cy, el,cy+rry, cx-rrx,eb, cx,eb, cx+rrx,eb, er,cy+rry, er,cy, er,cy-rry, cx+rrx,et, cx,et, "x e"]; + var pl = new PList(list); + var plm = pl.matrixTransform(matrix); + var ellipse = plm.list.join(" "); var outline = document.getElementById("_NAIBU_outline"); var background = document.createElement("div"); background.style.position = "absolute"; - background.style.textAlign = "left"; background.style.top = 0; background.style.left = 0; background.style.width = this.w; background.style.height = this.h; + background.style.textAlign = "left"; background.style.top = "0px"; background.style.left = "0px"; background.style.width = this.w+ "px"; background.style.height = this.h+ "px"; outline.appendChild(background); background.style.filter = "progid:DXImageTransform.Microsoft.Compositor"; background.filters.item('DXImageTransform.Microsoft.Compositor').Function = 23; - var er2 = er - el / 2; - var ellipse = "ar " +el+ "," +et+ "," +er+ "," +eb+ " " +er2+ ",0 " +er2+ ",0 e"; 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]+ '" />'; + 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>'; background.filters[0].apply(); background.innerHTML = circle; background.filters[0].play(); this.tar.parentNode.insertBefore(background, this.tar); - this.tar.setAttribute("filled", "false"); - ellipse = circle = null; + this.tar.filled = "false"; + ellipse = circle = data = list = pl = plm = gt = cx = cy = r = null; + } else { + return false; + } return true; } catch(e) {stlog.add(e,1175);} } @@ -1363,10 +1389,11 @@ var tts = this.tar.style; tts.whiteSpace = "nowrap"; tts.color = this.fill === "none" ? "transparent" : this.fill; - this.fontSize = tts.fontSize = fontset(this["font-size"],w,h,matrix); + this.fontSize = fontset(this["font-size"],w,h,matrix); + tts.fontSize = this.fontSize+ "px"; if (this.cursor !== "default") {tts.cursor = this.cursor;} this.writingMode = tts.writingMode; - tts.marginTop = (this.writingMode === "tb-rl") ? 0 : -parseFloat(tts.fontSize); + tts.marginTop = (this.writingMode === "tb-rl") ? "0px" : -parseFloat(tts.fontSize)+ "px"; } catch(e){stlog.add(e,1185);} } @@ -1521,7 +1548,7 @@ vb = par = null; return this; } -STViewSpec.prototype.set = function vss( /*float*/ vw, /*float*/ vh) { +STViewSpec.prototype.set = function vss( /*float*/ vw, /*float*/ vh, /*element*/ ob) { var vB = this.viewBox, par = this.preserveAspectRatio; try { if (!vB) { @@ -1570,9 +1597,11 @@ break; } } - var ttps = this.tar.parentNode.style; - ttps.marginLeft = this._tx = tx; - ttps.marginTop = this._ty = ty; + var ttps = ob.style; + this._tx = tx; + this._ty = ty; + ttps.marginLeft = this._tx+ "px"; + ttps.marginTop = this._ty+ "px"; var m = new Matrix(xr, 0, 0, yr, 0, 0); return m; } catch(e) {stlog.add(e,1031);} @@ -1760,16 +1789,14 @@ NAIBU.XLink.prototype.set = function() { try { if (this.href) { - var tbth = this.base + this.href; + var uri = this.base + this.href; if (this.href.indexOf(".") === 0) { //相対URIの場合 - tbth = this.href; + uri = this.href; } - var uri = tbth; - var attr = "href"; switch (this.show) { case "embed": if (this.tar.tagName === "image") { - attr = "src"; + this.tar.src = uri; } else{ uri.match(/#(.+)$/); this.resource = document.getElementById(RegExp.$1); @@ -1783,7 +1810,7 @@ default: break; } - this.tar.setAttribute(attr,uri); + this.tar.setAttribute("href",uri); } } catch(e) {stlog.add(e,17155);} } @@ -1894,18 +1921,15 @@ regw = new STLength(regaw,obwidth); regh = new STLength(regah,obheight); var regwv = regw.value, reghv = regh.value; - obst.width = regwv; - obst.height = reghv; - ob.setAttribute("coordsize",regwv +" "+ reghv); - var oba = document.createElement("div"); - oba.setAttribute("id","_NAIBU_outline"); - obj.parentNode.appendChild(oba); + obst.width = regwv+ "px"; + obst.height = reghv+ "px"; + ob.coordsize = regwv +" "+ reghv; STdocument[dn] = new SVGtoVML(obc,obwidth,obheight,regw,regh); obj.parentNode.insertBefore(ob,obj); - STdocument[dn].read(); - STdocument[dn].set(); + STdocument[dn].read(ob); + STdocument[dn].set(ob); + data = dc = null; if (NAIBU.STObject !== void 0) {NAIBU.STObject.next();} - data = dc = null; } } Property changes on: branches/04x/sie.js ___________________________________________________________________ Modified: svn:mergeinfo - /branches/04x/041/sie.js:891-923 /branches/04x/042/sie.js:927-967 /branches/04x/043/sie.js:969-1013 /branches/04x/044/sie.js:1015-1067 /branches/04x/045/sie.js:1069-1078 + /branches/04x/041/sie.js:891-923 /branches/04x/042/sie.js:927-967 /branches/04x/043/sie.js:969-1013 /branches/04x/044/sie.js:1015-1067 /branches/04x/045/sie.js:1069-1078 /branches/04x/046/sie.js:1080-1129