fadeEffect.end();
playProgress.alpha=0.5;
playProgress.visible=true;
if(!keyPressed){
deltaSeek=Math.max(1,vidDisp.totalTime/1000);
playheadTime=vidDisp.playheadTime;
}
keyPressed=true;
newPos=Math.min(vidDisp.totalTime-0.1,playheadTime+deltaSeek);
playProgress.setProgress(newPos,vidDisp.totalTime);
playProgress.label=formatTime(newPos);
vidDisp.playheadTime=newPos;
deltaSeek*=1.1;
break;
case 38:
vol=Math.min(1,vol+0.025);
volume(vol);
break;
case 40:
vol=Math.max(0,vol-0.025);
volume(vol);
break;
default:
if(e.charCode==109) mute(); //`m'
}
}
private function onKeyUp(e:KeyboardEvent):void {
switch(e.keyCode) {
case 37: //<--
case 39: //-->
deltaSeek=Math.max(1,vidDisp.totalTime/1000);
keyPressed=false;
fadeEffect.play();
break;
}
}
private function onPlayheadUpdate(e:Event):void {
if(vidDisp.playing&&pauseAtPos>=0&&vidDisp.playheadTime=0&&
vidDisp.playheadTime>=pauseAtPos&&toBePaused
){
pause();
pauseAtPos=-1;
toBePaused=false;
}
}
private function play(p:Number=-1):void {
if(p>=0) seek(p);
if(vidComplete){seek(0);}vidDisp.play();
}
private function pause(p:Number=-1):void {
if(p>=0){pauseAtPos=p;return;}
vidDisp.pause();
}
private function playPause():void {
if(vidDisp.playing) vidDisp.pause(); else vidDisp.play();
}
private function seek(p:Number):void {
vidDisp.playheadTime=p;
}
private function rewind():void {
vidDisp.playheadTime=0;
}
private function volume(v:Number):void {
muted=false;
vidDisp.volume = v;
}
private function mute():void {
if(muted) {
if (lastVolume==0) volume(0.75);
else volume(lastVolume);
}
else {
muted=true;lastVolume=vidDisp.volume;vidDisp.volume=0;
}
}
private function setSource(s:String):void {
vidDisp.pause();vidDisp.source = s;
vidDisp.play();vidDisp.pause();
vidDisp.playheadTime=0;
}
private function formatTime(s:Number):String {
var hrs:Number = Math.floor(s / 3600);
var min:Number = Math.floor(s / 60 % 60);
var sec:Number = Math.floor(s % 60);
var fmtd:String='';
if (hrs>0) fmtd = String(hrs)+':';
if (hrs>0 && min <10) fmtd+='0';
fmtd += String(min)+':';
if (sec<10) fmtd+='0';
fmtd += String(sec);
return fmtd;
}
private function currentTime():Number {
return vidDisp.playheadTime;
}
private function playing():Boolean {
return vidDisp.playing;
}
private function duration():Number {
return vidDisp.totalTime;
}
private function ismuted():Boolean {
return muted;
}
private function initApp():void {
this.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
this.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
ExternalInterface.addCallback("play", play);
ExternalInterface.addCallback("pause", pause);
ExternalInterface.addCallback("playPause", playPause);
ExternalInterface.addCallback("seek", seek);
ExternalInterface.addCallback("rewind", rewind);
ExternalInterface.addCallback("volume", volume);
ExternalInterface.addCallback("mute", mute);
ExternalInterface.addCallback("setSource", setSource);
ExternalInterface.addCallback("currentTime", currentTime);
ExternalInterface.addCallback("duration", duration);
ExternalInterface.addCallback("playing", playing);
ExternalInterface.addCallback("muted", ismuted);
var itemPlayPause:ContextMenuItem = new ContextMenuItem("N.N.");
this.contextMenu.customItems.push(itemPlayPause);
itemPlayPause.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,
function(e:ContextMenuEvent):void{playPause();});
var itemRewind:ContextMenuItem = new ContextMenuItem("Rewind, [Home]");
this.contextMenu.customItems.push(itemRewind);
itemRewind.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,
function(e:ContextMenuEvent):void{vidDisp.pause();seek(0);});
var itemGotoEnd:ContextMenuItem = new ContextMenuItem("Goto End, [End]");
this.contextMenu.customItems.push(itemGotoEnd);
itemGotoEnd.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,
function(e:ContextMenuEvent):void{if(vidDisp.bytesTotal){
vidDisp.pause();
vidDisp.playheadTime=vidDisp.totalTime-0.1;}});
var itemMute:ContextMenuItem = new ContextMenuItem("N.N.");
this.contextMenu.customItems.push(itemMute);
itemMute.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,
function(e:ContextMenuEvent):void{mute();});
this.contextMenu.customItems.push(
new ContextMenuItem("via keyboard:", true, false, true));
this.contextMenu.customItems.push(
new ContextMenuItem("Seek, [\u2190]/[\u2192]", false, false, true));
this.contextMenu.customItems.push(
new ContextMenuItem("Volume, [\u2191]/[\u2193]", false, false, true));
this.contextMenu.addEventListener(ContextMenuEvent.MENU_SELECT,
function(e:ContextMenuEvent):void{
itemPlayPause.caption=(vidDisp.playing ? "Pause" : "Play")+", [Space]";
itemMute.caption=(muted ? "Unmute" : "Mute")+", [m]";}
);
}
]]>