AS3。在不同的孩子中控制视频

时间:2014-10-08 08:33:41

标签: actionscript-3 video

我在控制视频方面遇到了一些问题。我有这个Main.as,我正在添加一个孩子。孩子包含一个循环播放的视频。

在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视频到最后,停止它,然后让新的孩子视频开始播放。

不知道如何实现这一目标。任何人吗?

1 个答案:

答案 0 :(得分: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