svnno****@sourc*****
svnno****@sourc*****
2010年 1月 12日 (火) 23:46:10 JST
Revision: 1571 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1571 Author: dhrname Date: 2010-01-12 23:46:10 +0900 (Tue, 12 Jan 2010) Log Message: ----------- 関数_noie_svgfontの代わりに、機能をobjectembedsのreadSvgFontメソッドに集約させる Modified Paths: -------------- branches/05x/058/sie.js Modified: branches/05x/058/sie.js =================================================================== --- branches/05x/058/sie.js 2010-01-12 12:45:04 UTC (rev 1570) +++ branches/05x/058/sie.js 2010-01-12 14:46:10 UTC (rev 1571) @@ -100,7 +100,7 @@ _noie_svgfont(); } else { var off = (!!window.opera)? 2000 : 500; - NAIBU.stopFont = setTimeout(_noie_svgfont, off); + NAIBU.stopFont = setTimeout("NAIBU.STObject.readSvgFont()", off); } } window.onload = null; @@ -325,6 +325,7 @@ this.obj = document.getElementsByTagName("object") || {length:0}; this.emd = document.getElementsByTagName("embed") || {length:0}; this.onumber = this.enumber = 0; + this._end_ = false; return this; } Objectembeds.prototype.next = function(){ @@ -364,6 +365,25 @@ this.startAnime(); } catch(e) {stlog.add(e,294);} }; +Objectembeds.prototype.readSvgFont = function(){ + if (this.onumber < this.obj.length) { + var s, obji = this.obj[this.onumber]; + this.onumber++; + if (obji.getSVGDocument !== void 0) { //Operaでなければ、かつ、void 0はundefinedのこと + if (obji.contentDocument !== void 0) { //Firefoxの場合 + s = obji.contentDocument; + } else { + s = obji.getSVGDocument(); + } + NAIBU._fontSearchURI(s); + } + } else { + if (!this._end_) { + this._end_ = true; + NAIBU._fontSearchURI(document); + } + } +}; //アニメーションをスタートさせる Objectembeds.prototype.startAnime = function(){ for (var i=0;i<this.obj.length;++i) { @@ -2136,21 +2156,6 @@ data = isTategaki = horizOrVert = em = advX = dx = dy = fontSize = fe = null; }; //IE以外 -function _noie_svgfont() { - var obj = NAIBU.STObject.obj; - for (var i=0;i<obj.length;++i) { - var s, obji = obj[i]; - if (obji.getSVGDocument !== void 0) { //Operaでなければ、かつ、void 0はundefinedのこと - if (obji.contentDocument !== void 0) { //Firefoxの場合 - s = obji.contentDocument; - } else { - s = obji.getSVGDocument(); - } - NAIBU._fontSearchURI(s); - } - } - NAIBU._fontSearchURI(document); -}; //font-face-uri要素に書かれたuriを手がかりに、Ajaxを使ってファイルを読み込む NAIBU._fontSearchURI = function(doc){ var tsrc = doc.getElementsByTagNameNS(NAIBU.svgNameSpace, "font-face-uri"); @@ -2159,6 +2164,9 @@ var ids = src.substring(src.indexOf("#")+1, src.length); getURL(src.replace(/#.+$/, ""), _noie_font, [ {id : ids, style : {}, docu : doc} ], 1); } + if (tsrc.length === 0) { + NAIBU.STObject.readSvgFont(); + } }; function _noie_font(data) { if (data.success) { @@ -2176,6 +2184,7 @@ } } doc = data = null; + NAIBU.STObject.readSvgFont(); } }; NAIBU._noie_createFont = function(/*Element*/ ti, /*Element*/ font) {