Play XML videos in sequence
hi,
i playing videos xml file. added 4 buttons switching videos.
now need play video in sequence. (like if finished 1st video after play 2nd video).
pls help?
var videourl:string; var myxml:xml; var myloader:urlloader = new urlloader(); myloader.load(new urlrequest("chapter_list.xml")); myloader.addeventlistener(event.complete, processxml); var nconnection:netconnection; var ns:netstream; var video:video = new video(); function processxml(e:event):void { myxml = new xml(e.target.data); videourl = myxml.chapter[0]; nconnection = new netconnection(); nconnection.addeventlistener(netstatusevent.net_status, netstatushandler); nconnection.addeventlistener(securityerrorevent.security_error, securityerrorhandler); nconnection.connect(null) function netstatushandler(event:netstatusevent):void { trace(event.info.code); switch (event.info.code) { case "netconnection.connect.success" : connectstream(); break; case "netstream.play.streamnotfound" : trace("stream not found: " + videourl); break; case "netstream.play.stop" : break; default : } } function connectstream():void { ns = new netstream(nconnection); ns.addeventlistener(netstatusevent.net_status, netstatushandler); ns.addeventlistener(asyncerrorevent.async_error, ayncerrorhandler); ns.client = this; viddisplay.attachnetstream(ns); ns.play(videourl); viddisplay.smoothing = true; } function securityerrorhandler(event:securityerrorevent):void { trace("securityerrorhandler: " + event); } function ayncerrorhandler(event: asyncerrorevent):void { //nothing } } main_mc.chapt1.addeventlistener(mouseevent.click, capt1click); main_mc.chapt2.addeventlistener(mouseevent.click, capt2click); main_mc.chapt3.addeventlistener(mouseevent.click, capt3click); main_mc.chapt4.addeventlistener(mouseevent.click, capt4click); function capt1click(e:mouseevent):void { videourl = myxml.chapter[0]; ns.play(videourl); controlbar.play_btn.visible = false; } function capt2click(e:mouseevent):void { videourl = myxml.chapter[1]; ns.play(videourl); controlbar.play_btn.visible = false; } function capt3click(e:mouseevent):void { videourl = myxml.chapter[2]; ns.play(videourl); controlbar.play_btn.visible = false; } function capt4click(e:mouseevent):void { videourl = myxml.chapter[3]; ns.play(videourl); controlbar.play_btn.visible = false; }
your netstream's client property has onplaystatus event can use:
function connectstream():void {
ns=new netstream(nconnection);
ns.addeventlistener(netstatusevent.net_status, netstatushandler);
ns.addeventlistener(asyncerrorevent.async_error, ayncerrorhandler);
ns.client=this;
this.onplaystatus=onplaystatusf;
viddisplay.attachnetstream(ns);
ns.play(videourl);
viddisplay.smoothing=true;
}
function onplaystatusf(e_obj:object):void {
if (e_obj.code=="netstream.play.complete") {
var index:int=myxml.chapter.indexof(videourl);
index=(index+1)%myxml.chapter.length();
videourl=myxml.chapter[index];
ns.play(videourl);
controlbar.play_btn.visible=false;
}
}
p.s. doesn't use video instance anywhere
More discussions in ActionScript 3
adobe
Comments
Post a Comment