OSDN Git Service

Modify the end property
authordhrname <dhrname@users.sourceforge.jp>
Sun, 6 Nov 2016 13:30:18 +0000 (22:30 +0900)
committerdhrname <dhrname@users.sourceforge.jp>
Sun, 6 Nov 2016 13:30:18 +0000 (22:30 +0900)
org/w3c/dom/smil.js
tool/Spec/spec/SvgDomSpec.js

index d0ba046..44d853e 100644 (file)
@@ -221,15 +221,16 @@ base("$frame").mix ( {
           this.state = play;\r
         }\r
       } else if (state === play) {\r
-        if ( (f >= cacheBegin + this.activeTime)\r
-            || (endTime >= cacheBegin) || (startTime > cacheBegin) ) {\r
+        if ( (endTime >= cacheBegin) || (startTime > cacheBegin) ) {\r
           /*終了時刻に到達したか、再び開始イベントが発火されたとき*/\r
           this.state = end;\r
-          /*現時点を終了時刻とみなす*/\r
-          this.end = f;\r
-          /*activeTimeプロパティは、begin属性とend属性が反映されていないため、\r
-           * beginEndプロパティに別に設定しておく*/\r
-          (endTime > 0) && (this.beginEnd = endTime - startTime);\r
+          if (endTime > 0) {\r
+            /*endTimeを終了時刻とみなす*/\r
+            this.end = endTime;\r
+            /*activeTimeプロパティは、begin属性とend属性が反映されていないため、\r
+             * beginEndプロパティに別に設定しておく*/\r
+            this.beginEnd = endTime - startTime;\r
+          }\r
         }\r
       } else if (state === end) {\r
         if (startTime > cacheBegin) {\r
index 729e8fc..8e3a6f4 100644 (file)
@@ -269,7 +269,7 @@ describe("SMIL Animation Spec", function() {
       expect(frame.updateState(0).state).toBe(frame.PLAYING);\r
       expect(frame.begin).toBe(0);\r
       expect(frame.updateState(1).state).toBe(frame.ENDING);\r
-      expect(frame.end).toBe(1);\r
+      expect(frame.end).toBe(0);\r
       expect(frame.beginEnd).toBe(Number.MAX_VALUE);\r
       expect(frame.updateState(1).state).toBe(frame.BEGINNING);\r
       expect(frame.begin).toBe(1);\r
@@ -2283,6 +2283,7 @@ describe("SMIL Animation Spec", function() {
           ele = document.createElementNS("http://www.w3.org/2000/svg", "animate");\r
           p.appendChild(ele);\r
           frame = base("$frame");\r
+          frame.pauseAnimation();\r
           frame.timelines.length = 0;\r
           frame.startTime = Date.now();\r
           frame.setFrame(0);\r