OSDN Git Service

Support calling from the SVG Document
authordhrname <dhrname@users.sourceforge.jp>
Wed, 2 Dec 2015 13:38:20 +0000 (22:38 +0900)
committerdhrname <dhrname@users.sourceforge.jp>
Wed, 2 Dec 2015 13:38:20 +0000 (22:38 +0900)
org/w3c/dom/smil.js

index a09f39e..446db2a 100644 (file)
@@ -1419,8 +1419,21 @@ function getDocument()
       svgns = "http://www.w3.org/2000/svg";\r
   if (svg) {\r
     for (var i=0;i<svg.length;++i) {\r
-      var svgDoc = svg[i].getSVGDocument(),\r
-          $set = base("$calcMode").$attribute.$setElement;\r
+      getElement( svg[i].getSVGDocument() );\r
+    }\r
+  }\r
+  /*SVG文書から呼び出されたときも処理する*/\r
+  getElement(document);\r
+  /*idはアニメの中止ハンドル*/\r
+  var id = __step();\r
+  window.addEventListener("unload", function() {\r
+      /*ページを移る際には、アニメーションを中止しておく(中止する保証がないため)*/\r
+      window.cancelAnimationRequest && cancelAnimationRequest(id);\r
+    });\r
+  \r
+  /*文書からアニメーション関連要素を取り出して、オブジェクトを初期化*/\r
+  function getElement (svgDoc) {\r
+      var $set = base("$calcMode").$attribute.$setElement;\r
       init($set, "set");\r
       init($set.$animateElement, "animate");\r
       init($set.$animateElement, "animateColor");\r
@@ -1434,21 +1447,14 @@ function getDocument()
            var hash = svgDoc.defaultView.location.hash.slice(1);\r
            svgDoc.getElementById(hash).beginElement();\r
          });\r
-    }\r
-  }\r
-  /*idはアニメの中止ハンドル*/\r
-  var id = __step();\r
-  window.addEventListener("unload", function() {\r
-      /*ページを移る際には、アニメーションを中止しておく(中止する保証がないため)*/\r
-      window.cancelAnimationRequest && cancelAnimationRequest(id);\r
-    });\r
-  \r
-  function init (obj, name) {\r
-    var eles = svgDoc.getElementsByTagNameNS(svgns, name)\r
-    for (var i=0;i<eles.length;++i) {\r
-      obj.up().init(eles.item(i));\r
-    }\r
-    eles = obj = void 0;\r
+\r
+      function init (obj, name) {\r
+        var eles = svgDoc.getElementsByTagNameNS(svgns, name)\r
+        for (var i=0;i<eles.length;++i) {\r
+          obj.up().init(eles.item(i));\r
+        }\r
+        eles = obj = void 0;\r
+      };\r
   };\r
 }\r
 \r