OSDN Git Service

Modify a problem of the repeqtEvent
authordhrname <dhrname@users.sourceforge.jp>
Sat, 17 Oct 2015 13:06:07 +0000 (22:06 +0900)
committerdhrname <dhrname@users.sourceforge.jp>
Sat, 17 Oct 2015 13:06:07 +0000 (22:06 +0900)
org/w3c/dom/smil.js
tool/Spec/spec/SvgDomSpec.js

index a395ca2..b558146 100644 (file)
@@ -1218,24 +1218,30 @@ base("$frame").up("$svgEvent").mix( {
               frame: begin,\r
               eventType: "begin",\r
               target: target,\r
-              next: { frame: begin+simpleDur,\r
-                eventType: "repeat",\r
+              next: {\r
+                frame: begin+timeline.activeTime,\r
+                eventType: "end",\r
                 target: target,\r
-                limit: 0,\r
-                simpleDuration: simpleDur,\r
-                next: {\r
-                  frame: begin+timeline.activeTime,\r
-                  eventType: "end",\r
-                  target: target,\r
-                  next: null\r
-                }\r
+                next: null\r
               }\r
             };\r
         if (obj) {\r
-          obj = obj.next.next.next = first;\r
+          obj = obj.next.next = first;\r
         } else {\r
           obj = this.first = first;\r
         }\r
+        if (simpleDur && (timeline.activeTime !== simpleDur)) {\r
+          /*活動継続時間と単純持続時間が異なるとき、repeatイベントを設定\r
+           * ただし、repeatイベントはendイベントが発生する前に起きるものと仮定*/\r
+          first.next = {\r
+            frame: begin+simpleDur,\r
+            eventType: "repeat",\r
+            target: target,\r
+            limit: 0,\r
+            simpleDuration: simpleDur,\r
+            next: first.next\r
+          };\r
+        }\r
       }\r
     timelines = obj = first = begin = target = void 0;\r
   },\r
index 534004d..3db72bb 100644 (file)
@@ -4223,16 +4223,9 @@ describe("SMIL Animation Spec", function() {
             target: ele,\r
           \r
             next: { frame: 0,\r
-              eventType: "repeat",\r
-              limit: 0,\r
-              simpleDuration: 0,\r
+              eventType: "end",\r
               target: ele,\r
-            \r
-              next: { frame: 0,\r
-                eventType: "end",\r
-                target: ele,\r
-                next: null\r
-              }\r
+              next: null\r
             }\r
           }\r
         );\r
@@ -4253,16 +4246,9 @@ describe("SMIL Animation Spec", function() {
             target: ele,\r
           \r
             next: { frame: 0,\r
-              eventType: "repeat",\r
-              limit: 0,\r
-              simpleDuration: 0,\r
+              eventType: "end",\r
               target: ele,\r
-            \r
-              next: { frame: 0,\r
-                eventType: "end",\r
-                target: ele,\r
-                next: null\r
-              }\r
+              next: null\r
             }\r
           }\r
         );\r
@@ -4274,16 +4260,9 @@ describe("SMIL Animation Spec", function() {
             target: ele,\r
           \r
             next: { frame: 0,\r
-              eventType: "repeat",\r
-              limit: 0,\r
-              simpleDuration: 0,\r
+              eventType: "end",\r
               target: ele,\r
-            \r
-              next: { frame: 0,\r
-                eventType: "end",\r
-                target: ele,\r
-                next: null\r
-              }\r
+              next: null\r
             }\r
           }\r
         );\r
@@ -4314,17 +4293,10 @@ describe("SMIL Animation Spec", function() {
             eventType: "begin",\r
             target: ele,\r
           \r
-            next: { frame: 0,\r
-              eventType: "repeat",\r
-              limit: 0,\r
-              simpleDuration: 0,\r
+            next: { frame: 10,\r
+              eventType: "end",\r
               target: ele,\r
-            \r
-              next: { frame: 10,\r
-                eventType: "end",\r
-                target: ele,\r
-                next: null\r
-              }\r
+              next: null\r
             }\r
           };\r
         expect(frame.first).toEqual(a);\r
@@ -4337,7 +4309,7 @@ describe("SMIL Animation Spec", function() {
           target: ele\r
         }) );\r
         frame.setTimeTable(0);\r
-        a.next.next.next = { frame: 1,\r
+        a.next.next = { frame: 1,\r
             eventType: "begin",\r
             target: ele,\r
           \r