[Sie-announce] SIEコード [1516] Safari3でもSVGアニメーションができるように改良

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2009年 12月 30日 (水) 22:53:38 JST


Revision: 1516
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1516
Author:   dhrname
Date:     2009-12-30 22:53:38 +0900 (Wed, 30 Dec 2009)

Log Message:
-----------
Safari3でもSVGアニメーションができるように改良

Modified Paths:
--------------
    branches/05x/057/sie.js

Modified: branches/05x/057/sie.js
===================================================================
--- branches/05x/057/sie.js	2009-12-30 13:41:10 UTC (rev 1515)
+++ branches/05x/057/sie.js	2009-12-30 13:53:38 UTC (rev 1516)
@@ -96,6 +96,9 @@
       NAIBU.STObject.ffnext();
     }
     setTimeout(_noie_svgfont, 500);
+    if (navigator.appVersion.indexOf("Version/3") > -1) { //Safariがバージョン3ならば
+      NAIBU.STObject.startAnime();
+    }
   }
   window.onload = null;
 }
@@ -338,7 +341,7 @@
 };
 NAIBU.svgNameSpace = "http://www.w3.org/2000/svg";
 //embed要素をobject要素に変える(Firefoxのみ)
-Objectembeds.prototype.ffnext = function(){
+Objectembeds.prototype.ffnext = function (){
   try{
     for (var i=0,teli=this.emd.length;i<teli;++i) {
       var s = document.createElement("object"), tei = this.emd[i];
@@ -350,17 +353,21 @@
       tep.removeChild(tei);
       teli--;
     }
-    for (var i=0;i<this.obj.length;++i) {
-      var doc = (this.obj[i].getSVGDocument === void 0) ? this.obj[i].contentDocument : this.obj[i].getSVGDocument();
-      var sets = doc.getElementsByTagNameNS(NAIBU.svgNameSpace, "set"), s;
-      for (var j=0;j<sets.length;++j) {
-        s = new _noie_STSetElement(sets[j]);
-        s.set();
-      }
-    }
-    NAIBU.Time.start();
+    this.startAnime();
   } catch(e) {stlog.add(e,294);}
 };
+//アニメーションをスタートさせる
+Objectembeds.prototype.startAnime = function (){
+  for (var i=0;i<this.obj.length;++i) {
+    var doc = (this.obj[i].getSVGDocument === void 0) ? this.obj[i].contentDocument : this.obj[i].getSVGDocument();
+    var sets = doc.getElementsByTagNameNS(NAIBU.svgNameSpace, "set"), s;
+    for (var j=0;j<sets.length;++j) {
+      s = new _noie_STSetElement(sets[j]);
+      s.set();
+    }
+  }
+  NAIBU.Time.start();
+};
 
 //g要素の処理
 function STGroupElement( /*element*/ g, /*Matrix*/ matrix, /*float*/w, h) {




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