2015-05-18 3 views
0

Я нашел этот код в сети, и это почти идеально подходит для моих нужд, но мне нужно, чтобы он непрерывно зацикливал клип.FLASH AS3 - Loop video непрерывно

var so: Sound= new Sound(); 
    var audioChannel: SoundChannel= new SoundChannel(); 
    var audioTransform: SoundTransform = new SoundTransform(); 
    var video:Video=new Video(320,240); 
    var nc:NetConnection=new NetConnection ; 
    nc.connect(null); 
    var ns:NetStream=new NetStream(nc); 
    var meta: Object = new Object(); 
    meta.onMetaData = function(meta:Object){ 
     trace(meta.duration); 
    }; 
    ns.client=meta; 
    addChild(video); 
    video.attachNetStream(ns); 
    ns.play("vid.flv"); 
    //clip is a transparent clip (alpha=0) for the entire scene 
    clip.addEventListener(MouseEvent.MOUSE_OVER,mute); 
    clip.addEventListener(MouseEvent.MOUSE_OUT,unmute); 
    function mute(e:MouseEvent) { 
     ns.soundTransform=audioTransform; 
     audioTransform.volume=0; 
    } 
    function unmute(e:MouseEvent) { 
     ns.soundTransform=audioTransform; 
     audioTransform.volume=1; 
    } 

ответ

0

В цикле видеопоток в AS3:

  1. Прослушивание для потоков NET_STATUS события.

    //ns is a netstream object 
    ns.addEventListener(NetStatusEvent.NET_STATUS, streamStatus); 
    
  2. В обработчике событий streamStatus, проверьте код состояния видео остановка события:

    function streamStatus(status:NetStatusEvent) { 
        if (status.info.code == "NetStream.Play.Stop") { 
          //the video has stopped 
        } 
    } 
    
  3. Для цикла видео, просто обратиться к началу.

    ns.seek(0); 
    

Так что это окончательный код:

ns.addEventListener(NetStatusEvent.NET_STATUS, streamStatus); 
    ns.play("vid.flv"); 

    function streamStatus(status:NetStatusEvent) { 
     if (status.info.code == "NetStream.Play.Stop") { 
      ns.seek(0); 
     } 
    } 

Чтобы увидеть коды независимо от статуса вы можете проверить, увидеть documentation.