+ _self.getFrameInfo = function () {
+
+ var i = _self.getCurrentSlide();
+ var canvas = $($(".sws-canvas")[i]);
+ var infos = canvas.data("sws-frames");
+ return infos;
+ };
+ _self.getCurrentFrame = function () { return _self.getFrameInfo().current; };
+ _self.setCurrentFrame = function (i) { _self.getFrameInfo().current = i; };
+ _self.firstFrame = function () { return 0; };
+ _self.lastFrame = function () { return _self.getFrameInfo().frames.length-1; };
+
+ _self.nextFrame = function () {
+ _self.setCurrentFrame(Math.min(_self.getCurrentFrame()+1,
+ _self.lastFrame()));
+
+ };
+ _self.previousFrame = function () {
+ _self.setCurrentFrame(Math.max(_self.getCurrentFrame()-1,
+ _self.firstFrame()));
+ };
+
+ _self.next = function () {
+ var i = _self.getCurrentFrame();
+ if (i == _self.lastFrame())
+ _self.nextSlide();
+ else
+ _self.nextFrame();
+ };
+
+ _self.previous = function () {
+ var i = _self.getCurrentFrame();
+ if (i == _self.firstFrame())
+ _self.previousSlide();
+ else
+ _self.previousFrame();
+ };
+
+
+ _self.keyboardHandler = function (event) {
+ if (_animation_running) return;