OSDN Git Service

New the object
authordhrname <dhrname@users.sourceforge.jp>
Mon, 30 Jan 2017 13:39:44 +0000 (22:39 +0900)
committerdhrname <dhrname@users.sourceforge.jp>
Mon, 30 Jan 2017 13:39:44 +0000 (22:39 +0900)
org/w3c/dom/smil.js

index a44e648..8814088 100644 (file)
@@ -47,8 +47,8 @@ base("$frame").mix ( {
   \r
   /*アニメーションを開始させるメソッド*/\r
   startAnimation: function() {\r
-    /*__step関数は最後に書く*/\r
-    __step();\r
+    /*$getDocument.step関数は最後に書く*/\r
+    base("$getDocument").step();\r
   },\r
   \r
   /*アニメーションが停止した状態かどうか、停止しているならばtrue*/\r
@@ -2041,92 +2041,96 @@ base("$calcMode").up("$attribute").mix( {
     }\r
   } );\r
 \r
-function getDocument() \r
-{\r
-  var svg = document.getElementsByTagName("object"),\r
-      svgns = "http://www.w3.org/2000/svg";\r
-  if (svg) {\r
-    for (var i=0;i<svg.length;++i) {\r
-      getElement( svg[i].getSVGDocument() );\r
+base("$getDocument").mix ( function() {\r
+\r
+  function getDocument() \r
+  {\r
+    var svg = document.getElementsByTagName("object"),\r
+        svgns = "http://www.w3.org/2000/svg";\r
+    if (svg) {\r
+      for (var i=0;i<svg.length;++i) {\r
+        getElement( svg[i].getSVGDocument() );\r
+      }\r
     }\r
+    /*SVG文書から呼び出されたときも処理する*/\r
+    getElement(document);\r
+    /*idはアニメの中止ハンドル*/\r
+    var id = __step(),\r
+        idstop = function() {\r
+          /*アニメーションを中止する関数*/\r
+          window.cancelAnimationFrame && cancelAnimationFrame(id);\r
+        };\r
+    base("$frame").on("pauseAnimation", idstop);\r
+    window.addEventListener("unload", idstop);\r
+    \r
+    /*文書からアニメーション関連要素を取り出して、オブジェクトを初期化*/\r
+    function getElement (svgDoc) {\r
+        var $set = base("$calcMode").$attribute.$setElement,\r
+            $animate = $set.$animateElement;\r
+        init($set, "set");\r
+        init($animate, "animate");\r
+        init($animate, "animateColor");\r
+        init($animate.$animateTransformElement, "animateTransform");\r
+        init($animate.$animateTransformElement.$motionElement, "animateMotion");\r
+          /*リンクのハッシュ読み取りで、ハイパーリンクのイベント処理\r
+         * たとえば、a要素のxlink:href="#hoge"で、<animate id="hoge"のとき、\r
+         * animate要素がハイパーリンク作動と同時に動くようになる\r
+         * \r
+         * ただし、SMIL アニメーションの仕様では、\r
+         * animate要素の開始時刻まで、時を進める操作をするだけ*/\r
+         svgDoc.defaultView.addEventListener("hashchange", function() {\r
+             var hash = svgDoc.defaultView.location.hash.slice(1);\r
+             svgDoc.getElementById(hash).beginElement();\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
+    };\r
   }\r
-  /*SVG文書から呼び出されたときも処理する*/\r
-  getElement(document);\r
-  /*idはアニメの中止ハンドル*/\r
-  var id = __step(),\r
-      idstop = function() {\r
-        /*アニメーションを中止する関数*/\r
-        window.cancelAnimationFrame && cancelAnimationFrame(id);\r
-      };\r
-  base("$frame").on("pauseAnimation", idstop);\r
-  window.addEventListener("unload", idstop);\r
   \r
-  /*文書からアニメーション関連要素を取り出して、オブジェクトを初期化*/\r
-  function getElement (svgDoc) {\r
-      var $set = base("$calcMode").$attribute.$setElement,\r
-          $animate = $set.$animateElement;\r
-      init($set, "set");\r
-      init($animate, "animate");\r
-      init($animate, "animateColor");\r
-      init($animate.$animateTransformElement, "animateTransform");\r
-      init($animate.$animateTransformElement.$motionElement, "animateMotion");\r
-        /*リンクのハッシュ読み取りで、ハイパーリンクのイベント処理\r
-       * たとえば、a要素のxlink:href="#hoge"で、<animate id="hoge"のとき、\r
-       * animate要素がハイパーリンク作動と同時に動くようになる\r
-       * \r
-       * ただし、SMIL アニメーションの仕様では、\r
-       * animate要素の開始時刻まで、時を進める操作をするだけ*/\r
-       svgDoc.defaultView.addEventListener("hashchange", function() {\r
-           var hash = svgDoc.defaultView.location.hash.slice(1);\r
-           svgDoc.getElementById(hash).beginElement();\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
-  };\r
-}\r
+  window.addEventListener && window.addEventListener("load", getDocument);\r
 \r
-window.addEventListener && window.addEventListener("load", getDocument);\r
-\r
-function __step() {\r
-/*EdgeはhasFeatureメソッドでtrueを返す*/\r
-if (!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Animation", "1.1")\r
-    || (window.navigator.userAgent.toLowerCase().indexOf("edge") > 0)) {\r
-  if (window.requestAnimationFrame && requestAnimationFrame) {\r
-    /*IE11やEdgeなどSMILアニメーションに対応していないブラウザ用*/\r
-    /*cancelはアニメーションの中止ハンドル*/\r
-    var cancel = {\r
-       handle: null\r
-      };\r
-    (function(frame) {\r
-      var _cancel = cancel; /*cancelのエイリアス*/\r
-      var step = function () {\r
-        if (!this.isPaused) {\r
-          frame++;\r
-          try {\r
-            this.setFrame(frame);\r
-          } catch(e) {\r
-          }\r
+  this.step = __step;\r
+  function __step() {\r
+    /*EdgeはhasFeatureメソッドでtrueを返す*/\r
+    if (!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Animation", "1.1")\r
+        || (window.navigator.userAgent.toLowerCase().indexOf("edge") > 0)) {\r
+      if (window.requestAnimationFrame && requestAnimationFrame) {\r
+        /*IE11やEdgeなどSMILアニメーションに対応していないブラウザ用*/\r
+        /*cancelはアニメーションの中止ハンドル*/\r
+        var cancel = {\r
+           handle: null\r
+          };\r
+        (function(frame) {\r
+          var _cancel = cancel; /*cancelのエイリアス*/\r
+          var step = function () {\r
+            if (!this.isPaused) {\r
+              frame++;\r
+              try {\r
+                this.setFrame(frame);\r
+              } catch(e) {\r
+              }\r
+              _cancel.handle = requestAnimationFrame(step);\r
+            }\r
+          }.bind(base("$frame"));\r
           _cancel.handle = requestAnimationFrame(step);\r
-        }\r
-      }.bind(base("$frame"));\r
-      _cancel.handle = requestAnimationFrame(step);\r
-    })(-1);\r
-    return cancel;\r
-  } else {\r
-    setInterval( (function(frame) {\r
-      var $f = base("$frame");\r
-      return function () {\r
-        frame++;\r
-        $f.setFrame(frame);\r
-      };\r
-    })(-1), 1 );\r
+        })(-1);\r
+        return cancel;\r
+      } else {\r
+        setInterval( (function(frame) {\r
+          var $f = base("$frame");\r
+          return function () {\r
+            frame++;\r
+            $f.setFrame(frame);\r
+          };\r
+        })(-1), 1 );\r
+      }\r
+    }\r
   }\r
-}\r
-}\r
+} );\r
 //#endif // _SMIL_IDL_\r