2014-10-08 77 views
0

Im在控制視頻方面存在一些問題。我有這個Main.as我在那裏添加一個孩子。孩子包含一個循環播放的視頻。AS3。在單獨的孩子中控制視頻

在Main.as我運行這個,它只是添加視頻。 (視頻是_idleView)

_idleView = new IdleView(this.stage); 
addChild(_idleView); 

IdleView.as看起來是這樣的。這是添加視頻並將其循環的構造函數。

 _video = new Video(); 
     addChild(_video); 

     _nc = new NetConnection(); 
     _nc.connect(null); 
     _ns = new NetStream(_nc); 

     _ns.client = _meta; 
     _video.attachNetStream(_ns); 
     _ns.play(Settings.VIDEO_URL + "idle.flv"); 

Main.as稍後我會添加新的子(由點擊)還包含視頻。就像idleView但沒有循環。每當這個新的孩子被添加,我希望能夠播放idleView視頻到最後,停止它,然後讓新的孩子視頻開始播放。

不知道如何實現這一點。任何人?

回答

0

添加playVideo功能IdleView只是扮演空閒視頻,而無需循環,然後把它在你的click處理程序:

_newChild:ChildVideo; 

private function click(e:Event):void { 
    //other stuff 
    //Set the new child video to the _newChild variable 
    _idleView.addEventListener(Event.COMPLETE, onIdleVideoComplete); 
    _idleView.playVideo(); 
} 

private function onIdleVideoComplete(e:Event):void { 
    _newChild.playVideo(); 
} 

IdleView

public function playVideo():void { 
    _video = new Video(); 
    addChild(_video); 

    _nc = new NetConnection(); 
    _nc.connect(null); 
    _ns = new NetStream(_nc); 
    _ns.client = {}; 
    _ns.client.onPlayStatus = onPlayStatus; 

    _ns.client = _meta; 
    _video.attachNetStream(_ns); 
    _ns.play(Settings.VIDEO_URL + "idle.flv"); 
} 

private function onPlayStatus(item:Object):void { 
    if (item.code == NetStream.Play.Complete) { 
     dispatchEvent(new Event(Event.COMPLETE)); 
    } 
} 

又見https://stackoverflow.com/questions/20736656/correctly-trap-onplaystatus-for-netstreamAdobe docs for NetStream and playStatus