OSDN Git Service

各アニメーション要素のendEventの振る舞いを修正
authordhrname <dhrname@users.sourceforge.jp>
Sun, 8 Jan 2012 11:39:32 +0000 (20:39 +0900)
committerdhrname <dhrname@users.sourceforge.jp>
Sun, 8 Jan 2012 11:39:32 +0000 (20:39 +0900)
org/w3c/dom/svg.js

index e77e1c9..c67b987 100644 (file)
@@ -5416,7 +5416,6 @@ NAIBU.Time = {
           }
           if ((nci._finish || (nci._finish === 0)) && (s < nci._finish && nci._finish <= s2) && (nci.getCurrentTime() !== 0)) {
             nci.endElement();
-            nci._frame && nci._frame();
             nci._currentFrame = 0;
           }
           if (nci._frame) {
@@ -5607,13 +5606,16 @@ function SVGAnimateElement(){
     evt = vir = void 0;
   }, false);
   this.addEventListener("endEvent", function(evt) {
-    var tar = evt.target, fill = tar.getAttributeNS(null, "fill");
+    var tar = evt.target,
+        fill = tar.getAttributeNS(null, "fill");
     if (!fill || (fill === "remove")) {
       var evt = tar.ownerDocument.createEvent("MutationEvents");
       evt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
       tar.targetElement.dispatchEvent(evt);
       evt = void 0;
+      tar._frame && tar._frame();
     }
+    tar._frame = void 0;
   }, false);
   this.addEventListener("repeatEvent", function(evt) {
     var tar = evt.target;
@@ -5680,7 +5682,9 @@ function SVGSetElement(){
       evtt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
       tar.targetElement.dispatchEvent(evtt);
       attrName = style = evtt = void 0;
+      tar._frame && tar._frame();
     }
+    tar._frame = void 0;
     tar = fill = void 0;
   }, false);
   this.addEventListener("repeatEvent", function(evt) {
@@ -5808,8 +5812,10 @@ function SVGAnimateMotionElement(){
       var evtt = tar.ownerDocument.createEvent("MutationEvents");
       evtt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
       tar.targetElement.dispatchEvent(evtt);
+      tar._frame && tar._frame();
     }
-    tar._frame = evt = evtt = void 0;
+    tar._frame = void 0;
+    evt = evtt = trans = fill = tar = void 0;
   }, false);
   this.addEventListener("repeatEvent", function(evt) {
     var tar = evt.target;
@@ -5914,13 +5920,16 @@ function SVGAnimateColorElement() {
     tar._frame();
   }, false);
   this.addEventListener("endEvent", function(evt) {
-    var tar = evt.target;
+    var tar = evt.target,
+        fill = tar.getAttributeNS(null, "fill");
     if (!fill || (fill === "remove")) {
       var evtt = tar.ownerDocument.createEvent("MutationEvents");
       evtt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
       tar.targetElement.dispatchEvent(evtt);
+      tar._frame && tar._frame();
     }
-    tar._frame = evt = evtt = void 0;
+    tar._frame = void 0;
+    evt = evtt = tar = fill = void 0;
   }, false);
   this.addEventListener("repeatEvent", function(evt) {
     var tar = evt.target;
@@ -5945,7 +5954,16 @@ function SVGAnimateTransformElement() {
     trans.animVal.appendItem(tar.ownerDocument.documentElement.createSVGTransform());
   }, false);
   this.addEventListener("endEvent", function(evt) {
-    var tar = evt.target;
+    var tar = evt.target,
+        fill = tar.getAttributeNS(null, "fill");
+    if (!fill || (fill === "remove")) {
+      var evtt = tar.ownerDocument.createEvent("MutationEvents");
+      evtt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
+      tar.targetElement.dispatchEvent(evtt);
+      tar._frame && tar._frame();
+    }
+    tar._frame = void 0;
+    evt = evtt = tar = fill = void 0;
   }, false);
   this.addEventListener("repeatEvent", function(evt) {
     var tar = evt.target;