OSDN Git Service

NAIBU.stop関数の修正をして、フレーム処理から時間処理に再び変更
authordhrname <dhrname@users.sourceforge.jp>
Sat, 7 Jan 2012 12:28:54 +0000 (21:28 +0900)
committerdhrname <dhrname@users.sourceforge.jp>
Sat, 7 Jan 2012 12:28:54 +0000 (21:28 +0900)
org/w3c/dom/svg.js

index 77d9f3c..7dc35d7 100644 (file)
@@ -5399,34 +5399,32 @@ NAIBU.Time = {
         }
         nc[0] && nc[0].ownerDocument.documentElement.setCurrentTime(s);
         for (var i=0,ncli=nc.length;i<ncli;++i) {
-          var nci = nc[i];
-          if (nci._start || (nci._start === 0)) {
-            //フレーム処理でタイミングを演算している
-            if ((nci.getCurrentTime() === 0) && (((nci.getStartTime() / 100) | 0) === ntc)) {
-              nci.beginElement();
-            } else if (nci._finish && (((nci._finish / 100) | 0) === ntc) && (nci.getCurrentTime() !== 0)) {
-              nci.isRepeat = false;
-              nci.endElement();
-              nci._frame && nci._frame();
-              nci._currentFrame = 0;
-              delete nci._start;
-              nci._finish = null;
-            } else if (nci._frame) {
-              nci._currentFrame++;
-              nci._frame();
-            }
-            if (nci._isRepeat && (nci.getCurrentTime() !== 0) && ((nci.getSimpleDuration() % s) === 0)) {
-              var ttd = nci.ownerDocument,
-                  evt = ttd.createEvent("TimeEvents");
-              ++nci._numRepeat;
-              evt.initTimeEvent("repeatEvent", ttd.defaultView, nci._numRepeat);
-              nci.dispatchEvent(evt);
-              ttd = evt = void 0;
-            }
+          var nci = nc[i]
+              s2 = s + 100,
+              s1 = s - 100;
+          if ((nci._start || (nci._start === 0)) && (nci.getCurrentTime() === 0) && (s1 <= nci._start && nci._start < s2)) {
+            nci.beginElement();
+          }
+          if (nci._isRepeat && (nci.getCurrentTime() !== 0) && ((nci.getSimpleDuration() % s) === 0)) {
+            var ttd = nci.ownerDocument,
+                evt = ttd.createEvent("TimeEvents");
+            ++nci._numRepeat;
+            evt.initTimeEvent("repeatEvent", ttd.defaultView, nci._numRepeat);
+            nci.dispatchEvent(evt);
+            ttd = evt = void 0;
+          }
+          if ((nci._finish || (nci._finish === 0)) && (s1 <= nci._finish && nci._finish < s2) && (nci.getCurrentTime() !== 0)) {
+            nci.endElement();
+            nci._frame && nci._frame();
+            nci._currentFrame = 0;
+          }
+          if (nci._frame) {
+            nci._currentFrame++;
+            nci._frame();
           }
-          ++NAIBU.Time.currentFrame;
-          nci = void 0;
         }
+        ++NAIBU.Time.currentFrame;
+        nci = s1 = s2 = void 0;
 /*      } catch (e) {
         stlog.add(e, 4157);
       }*/