Flash video - list

  • vlist.onLoad = function() {
    var videos:Array = this.firstChild.childNodes;
    for(i=0;i<videos.length;i++) {
    videoList.addItem(videos[i].attributes.desc,videos[i].attributes.url);
    }
    ns.play(videoList.getItemAt(0).data);
    _root.desc = videoList.getItemAt(0).label;

    }

    Selline jupp, töötab ilusti. Probleem on selles, et pärast esimest clippi tahaks panna mängima järgmise. Hetkel jääb esimest clippi listist kordama (nagu selle koodi järgi ongi). On kellelgi mingit lihtsalt lahendust pakkuda ?

    06. november 2006 - 13:48:54 · Otselink

  • jüri 14 a

    Uuri NetStream classi helpist. Seal event onStatusega saab kõikvõimalike staatusi kätte. Või siis time/totaltimega saad arvutada video lõppemise momendi kätte ja liidad arrayle + 1 ja saad järgmise mängima.

    06. november 2006 - 14:23:35 · Otselink

  • ns.onStatus = function(info) {
    if(info.code == "NetStream.Buffer.Full") {
    bufferClip._visible = false;

    }
    if(info.code == "NetStream.Buffer.Empty") {
    bufferClip._visible = true;
    }
    if(info.code == "NetStream.Play.Stop") {
    ns.play(videoList.getItemAt(x).data);
    _root.desc = videoList.getItemAt(x).label;
    ns.seek(0);

    }
    }

    Nii sain asja korda, kui kellelgi huvi, x on siinkohal vastava vido järjekorra nr siis, mis suureneb 1 võrra, suuremate klippide puhul ei ole see hea lahendus tegelikult, aga mul pisikesed vidinad ja buffer küllalt suur ...

    06. november 2006 - 17:04:28 · Otselink

  • henk 14 a

    kas nii poleks parem? macromedia ise v2hemalt soovitab nii...

    var myListener = new Object();
    myListener.complete = function(eventObject) {
    trace("media is Finished");
    ns.play(videoList.getItemAt(x).data);
    };
    ns .addEventListener("complete", myListener);

    06. november 2006 - 19:17:17 · Otselink

  • tnx nokkloom, seda ma algse küsimusega mõtlesingi, ehk siis Media.complete event.

    07. november 2006 - 11:06:05 · Otselink