OSDN Git Service

Add a target property to the timeline object
authordhrname <dhrname@users.sourceforge.jp>
Mon, 12 Oct 2015 13:03:56 +0000 (22:03 +0900)
committerdhrname <dhrname@users.sourceforge.jp>
Mon, 12 Oct 2015 13:03:56 +0000 (22:03 +0900)
org/w3c/dom/smil.js
tool/Spec/spec/SvgDomSpec.js

index 95f466f..5661f75 100644 (file)
@@ -807,6 +807,8 @@ base("$calcMode").up("$attribute").mix( {
     var $frame = base("$frame"),\r
         begin = $frame.$begin,\r
         frame = begin.up().mix( {\r
+                  /*targetプロパティはbeginEventなどの発火で使う*/\r
+                  target: ele,\r
                   eventTarget: (this.element || begin.eventTarget),\r
                   string: this._getAttr("begin", "0"),\r
                   $activate: begin.$activate.up().mix( {\r
@@ -1207,6 +1209,10 @@ base("$frame").up("$svgEvent").mix( {
     if (this.lastTimeLine !== lastTimeLine) {\r
       this.lastTimeLine = lastTimeLine;\r
       for (var i=0, obj = null;i<timelines.length;++i) {\r
+        if (!timelines[i].target) {\r
+          /*target オブジェクトがないものは除外*/\r
+          continue;\r
+        }\r
         /*タイムラインから、beginEventとendEventを発火するスケジュールを作成*/\r
         var timeline = timelines[i],\r
             begin = timeline.begin,\r
@@ -1240,6 +1246,7 @@ base("$frame").up("$svgEvent").mix( {
   },\r
   \r
   setFrame: function (num) {\r
+    this.setTimeTable(num);\r
     /*スケジュールに記録しておいたものを実行して、イベントを発火\r
      * また、発火した場合は記録から取り除いて、次回から再び発火しないようにする*/\r
     var obj = this.first,\r
index 98b64af..2232677 100644 (file)
@@ -3728,6 +3728,7 @@ describe("SMIL Animation Spec", function() {
         \r
         $set.init();\r
         expect($set.timeline).toBe(frame.$begin);\r
+        expect($set.element).toBeNull();\r
       } );\r
     } );\r
       describe("An init method", function() {\r
@@ -4198,6 +4199,7 @@ describe("SMIL Animation Spec", function() {
           p, ele;\r
         beforeEach( function() {\r
           base("$frame").timelines = [];\r
+          frame.lastTimeLine = null;\r
           p = document.createElementNS("http://www.w3.org/2000/svg", "g");\r
           ele = document.createElementNS("http://www.w3.org/2000/svg", "animate");\r
           p.appendChild(ele);\r