OSDN Git Service

repeatについて、新しく、_numRepeatプロパティを追加
authordhrname <dhrname@users.sourceforge.jp>
Wed, 4 Jan 2012 12:49:01 +0000 (21:49 +0900)
committerdhrname <dhrname@users.sourceforge.jp>
Wed, 4 Jan 2012 12:49:01 +0000 (21:49 +0900)
org/w3c/dom/svg.js

index 3dbe0aa..1bb450b 100644 (file)
@@ -5091,7 +5091,9 @@ function SVGAnimationElement(es) {
    */
   this._maxCount = 0;
   this._maxDur = 0;
+  /*_isRepeatと_numRepeatは繰り返し再生のときに使う。なお、後者は現在のリピート回数*/
   this._isRepeat = false;
+  this._numRepeat = 0;
   /*_simpleDurationプロパティは
    *dur属性の数値を収納しておく。属性がなければnullのまま
    */
@@ -5195,6 +5197,7 @@ function SVGAnimationElement(es) {
   }, false);
   this.addEventListener("repeatEvent", function(evt) {
     var tar = evt.target;
+    ++tar._numRepeat;
     if ((tar._currentCount >= tar._maxCount) || (tar.getCurrentTime() >= (tar._maxDur+tar.getStartTime()))) {
       tar._isRepeat = false;
     }
@@ -5277,11 +5280,9 @@ SVGAnimationElement.prototype._getOffset = function(/*string*/ t) {
       if (isFinite(parseFloat(val))) { //1) offset-valueの場合
         that[name](offset);
       } else if (val.indexOf("repeat(") > -1) { //2) repeat-valueの場合
-        n = 0;
         var inte = parseFloat(val.slice(7)),
             ds = function (evt) {
-              ++n;
-              if (inte === n) {
+              if (inte === evt.target._numRepeat) {
                 that[name](offset);
               }
             };