/** * SHORTCUTS * This plugin enables keyboard shortcuts. * * Kurt George Gjerde 2009 * Licence: GNU GPL **/ package { import com.longtailvideo.jwplayer.player.*; import com.longtailvideo.jwplayer.plugins.*; import flash.display.MovieClip; import flash.events.KeyboardEvent; import flash.ui.Keyboard; public class Shortcuts extends MovieClip implements IPlugin { private static var pID:String = "shortcuts"; private var player:IPlayer; private var config:PluginConfig; private var version:String = '2'; private var debug:Boolean = false; private var keyShift:Boolean = false; private var keyCtrl:Boolean = false; public function Shortcuts():void {}; // Initialization public function initPlugin(pl:IPlayer, conf:PluginConfig):void { player = pl; config = conf; stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); } // ID getter public function get id():String { return pID + version; } // We no need resize public function resize(width:Number, height:Number):void { // Implement resizing if necessary } /** Keyboard handlers **/ function keyUpHandler(e:KeyboardEvent):void { if (e.keyCode == Keyboard.SHIFT) { keyShift = false; } else if (e.keyCode == Keyboard.CONTROL) { keyCtrl = false; } } function keyDownHandler(e:KeyboardEvent):void { // clip.field.text = "k:"+e.keyCode+" c:"+e.charCode; // Shift if (e.keyCode == Keyboard.SHIFT) { keyShift = true; } // Ctrl else if (e.keyCode == Keyboard.CONTROL) { keyCtrl = true; } // Space else if (e.keyCode==Keyboard.SPACE) { // Play|Pause var st:String = player.state; if(st == "PLAYING") { player.pause(); } else if(st == "PAUSED"){ player.play(); } } // Up else if (e.keyCode == Keyboard.UP) { doVolume(10); } // Down else if (e.keyCode == Keyboard.DOWN) { doVolume(-10); } // M else if (e.charCode == 77 || e.charCode == 109) { player.mute = !player.mute; } // F else if (e.charCode == 70 || e.charCode == 102 || e.keyCode == Keyboard.ESCAPE) { player.fullscreen = !player.fullscreen; } // N > else if (e.charCode == 78 || e.charCode == 110 || e.charCode == 62) { player.playlistNext(); } // < P else if (e.charCode == 80 || e.charCode == 112 || e.charCode == 60) { player.playlistPrev(); } } function doVolume(step:Number) { var v = player.config.volume; v += step; if (v<0) { v = 0; } if (v>100) { v = 100 } player.volume(v); } }; }