},\r
\r
/*凍結処理をするために、進捗率を最後まで進めて調整するメソッド\r
+ * 返り値は調整された進捗率\r
* もっぱら、_setEndFrameメソッドで使われる*/\r
- freeze: function($list) {\r
+ getAdvanceEnd: function($list) {\r
var line = this.timeline,\r
duration = line.simpleDuration;\r
if (duration) {\r
} else {\r
advance = 0;\r
}\r
- return this.tocall(advance);\r
+ return advance;\r
},\r
\r
/*_setEndFrameメソッドは、終了処理と凍結作業をする*/\r
_setEndFrame: function($list) {\r
/*上書きされたメソッドを呼び出してアニメーションの凍結作業をする*/\r
if (this.fill === "freeze") {\r
- this.setAttribute(this.freeze($list));\r
+ this.setAttribute(this.tocall( this.getAdvanceEnd($list) ));\r
line = duration = advance = void 0;\r
} else {\r
this.removeAttribute();\r
this.setAttribute = isPostActive ? this.__setAttribute\r
: this.$animateElement.setAttribute;\r
/*上書きされたメソッドを呼び出す*/\r
- this.$animateElement._setFrame.call(this, currentFrame);\r
+ this.$animateElement._setFrame.call(this, $list);\r
},\r
\r
_setEndFrame: function($list) {\r
list[this.numberOfList].value = "translate(0)";\r
}\r
} else {\r
- /*凍結処理をする*/\r
- list[this.numberOfList].value = this.freeze($list);\r
+ /*凍結処理をする\r
+ * 自前のtocallメソッドはvalueプロパティを書きかえてしまうため、\r
+ * 上書きメソッドを呼び出す*/\r
+ list[this.numberOfList].value = this.type+ "(" \r
+ +this.$animateElement.tocall.call( this, this.getAdvanceEnd($list) )+ ")";\r
}\r
+ this.setAttribute( this.joinList(this.defaultValue || "") );\r
},\r
\r
/*setAddメソッドのオーバライド\r
} )\r
.up("$motionElement")\r
.mix( function() {\r
- /*setRFrameメソッドを再定義*/\r
+ /*$animateTransformElementオブジェクトのでは、うまくいかないため、\r
+ * setRFrameとsetEndFrameメソッドを再定義*/\r
this._setFrame = this.$animateElement._setFrame;\r
+ this._setEndFrame = this.$animateElement._setEndFrame;\r
})\r
.mix( {\r
numberOfList: -1,\r