target: target,\r
/*リピートの制限回数*/\r
limit: Math.floor(activeTime / simpleDur),\r
- /*リピートの回数*/\r
- count: 0,\r
+ /*リピートの回数 (n >= 1)*/\r
+ count: 1,\r
simpleDuration: simpleDur,\r
next: first.next\r
};\r
/*IE11ではSVGEventsやDOMEventsを使うと問題が起きるため、MouseEventsで代用する*/\r
var evt = target.ownerDocument.createEvent("MouseEvents");\r
evt.initMouseEvent(obj.eventType+"Event" ,true, true, window, 0, 0, 0, 0, 0, false, false, false, false,0, target);\r
- target.dispatchEvent(evt);\r
- /*ポインタの連結を変更することで、リストからobj を除去*/\r
- cobj.next = obj.next;\r
- if (this.first === obj) {\r
- cobj = this.first = obj.next;\r
+ if ( (obj.eventType === "repeat") && (obj.count < obj.limit) ) {\r
+ /*リピートイベントが、リピート制限内である場合*/\r
+ /*numの段階で、何回リピートしたかを求める*/\r
+ obj.count += Math.floor( (num - frame) / obj.simpleDuration);\r
+ cobj = obj;\r
+ } else {\r
+ /*ポインタの連結を変更することで、リストからobj を除去*/\r
+ cobj.next = obj.next;\r
+ if (this.first === obj) {\r
+ cobj = this.first = obj.next;\r
+ }\r
}\r
+ target.dispatchEvent(evt);\r
} else {\r
/*next プロパティを書き換えるためのobj オブジェクトのキャッシュ*/\r
cobj = obj;\r
next: { frame: 10,\r
eventType: "repeat",\r
limit: 1,\r
- count: 0,\r
+ count: 1,\r
simpleDuration: 9,\r
target: ele,\r
\r
next: { frame: 5,\r
eventType: "repeat",\r
limit: 2,\r
- count: 0,\r
+ count: 1,\r
simpleDuration: 4,\r
target: ele,\r
\r
frame.setFrame(5);\r
a.count = 1;\r
expect(frame.first).toEqual(a);\r
+ \r
+ frame.timelines = [];\r
+ frame.first = null;\r
+ frame.addLine( base("$frame").$begin.up().mix({\r
+ timelines: [],\r
+ begin: 1,\r
+ simpleDuration: 4,\r
+ activeTime: 10,\r
+ target: ele\r
+ }) );\r
+ frame.setFrame(9);\r
+ a.count = 2;\r
+ expect(frame.first).toEqual(a);\r
} );\r
} );\r
describe("Event", function() {\r