} )\r
} ).parse();\r
frame.$activate.end.$begin = frame;\r
+ /*beginElementメソッドを追加*/\r
+ ele.beginElement = (frame.string !== "indefinite") ? function(){}\r
+ : function() {\r
+ frame.listener( {\r
+ /*アニメーションの開始をこのメソッドが呼ばれた時点とする*/\r
+ timeStamp: Date.now()\r
+ } );\r
+ };\r
+ /*endElementメソッドを追加*/\r
+ ele.endElement = (frame.$activate.end.string !== "indefinite") ? function(){}\r
+ : function() {\r
+ frame.$activate.end.listener( {\r
+ /*アニメーションの開始をこのメソッドが呼ばれた時点とする*/\r
+ timeStamp: Date.now()\r
+ } );\r
+ };\r
if (frame.isResolved) {\r
/*開始時間が初期化されてしまうのを防ぐ*/\r
var cacheBegin = frame.begin;\r
} );\r
frame.begin = cacheBegin;\r
}\r
- /*beginElementメソッドを追加*/\r
- ele.beginElement = (frame.string !== "indifinite") ? function(){}\r
- : function() {\r
- frame.listener( {\r
- /*アニメーションの開始をこのメソッドが呼ばれた時点とする*/\r
- timeStamp: Date.now()\r
- } );\r
- };\r
/*setFrameメソッドを使ったときの、再帰スタックの使いすぎを防ぐため*/\r
frame.timelines = [];\r
begin = ele = id = void 0;\r
* ただし、SMIL アニメーションの仕様では、\r
* animate要素の開始時刻まで、時を進める操作をするだけ*/\r
svgDoc.defaultView.addEventListener("hashchange", function() {\r
- svgDoc.defaultView.location.hash;\r
- })\r
+ svgDoc.getElementById(svgDoc.defaultView.location.hash.slice(1)).beginElement();\r
+ });\r
}\r
}\r
/*idはアニメの中止ハンドル*/\r
frame.setFrame(0);\r
ele.setAttributeNS(null, "begin", "indefinite");\r
ele.setAttributeNS(null, "dur", "1s");\r
+ ele.setAttributeNS(null, "dur", "1s");\r
ele.setAttributeNS(null, "attributeName", "fill");\r
ele.setAttributeNS(null, "fill", "freeze");\r
ele.setAttributeNS(null, "from", "rgb(0,0,0)");\r
begin = frame.$begin.$1;\r
expect(begin.string).toBe("indefinite");\r
expect(begin.begin).toBe(cur);\r
+ expect(ele.endElement()).toBeUndefined();\r
} );\r
});\r
} );\r