rendered paste bodyns.onStatus = function(info) {
trace(info.code);
if(info.code == "NetStream.Buffer.Full") {
bufferClip._visible = false;
ending = false;
clearInterval( statusID );
statusID = setInterval(videoStatus, 200);
}
if(info.code == "NetStream.Buffer.Empty") {
if ( !ending ) {
bufferClip._visible = true;
}
}
if(info.code == "NetStream.Play.Stop") {
bufferClip._visible = false;
//ending = true;
}
if(info.code == "NetStream.Play.Start") {
ending = false;
}
if(info.code == "NetStream.Buffer.Flush") {
ending = true;
}
}
ns["onMetaData"] = function(obj) {
duration = obj.duration;
//trace(obj.width);
//trace(obj.height);
// suck out the times and filepositions array, this was added by flvmdi27b
times = obj.keyframes.times;
positions = obj.keyframes.filepositions;
}
function videoStatus() {
amountLoaded = ns.bytesLoaded / ns.bytesTotal;
loader.loadbar._width = amountLoaded * loaderwidth;
loader.scrub._x = ns.time / duration * loaderwidth;
}
loader.scrub.onPress = function() {
clearInterval (statusID );
ns.pause();
this.startDrag(false,0,this._y,loaderwidth,this._y);
}
loader.scrub.onRelease = loader.scrub.onReleaseOutside = function() {
scrubit();
this.stopDrag();
}
function scrubit() {
var tofind = Math.floor((loader.scrub._x/loaderwidth)*duration);
if (tofind <= 0 ) {
restartIt();
return;
}
if(!_global.nowPlaying){ restartIt(); }
for (var i:Number=0; i < times.length; i++){
var j = i + 1;
if( (times[i] <= tofind) && (times[j] >= tofind ) ){
//trace("match at " + times[i] + " and " + positions[i]);
bufferClip._visible = true;
ns.play( _phpURL + "?file=" + _vidName + "&to=" + positions[i]);
//trace("play " + _phpURL + "?file=" + _vidName + "&position=" + positions[i]);
break;
}
}
}