在转到另一帧之前清除视频

时间:2013-08-08 01:39:51

标签: actionscript-3 removeclass removechild

您好我正在做一个有一些视频的演示文稿。要观看视频,我已经制作了一些按钮,我找到了一个代码,可以将外部视频带到舞台上。问题是,当我转到下一帧时,最后一个视频停留在那里。这是我必须在舞台上设置视频的代码:

miguel_btn.addEventListener(MouseEvent.CLICK,video_miguel);
function video_miguel(event:MouseEvent):void
{
var conexion10:NetConnection= new NetConnection();
conexion10.connect(null);
var display10:NetStream= new NetStream(conexion10);
display10.play("Miguel_1.flv");
var video10:Video=new Video();
video10.attachNetStream(display10);
video10.x= 150;
video10.y= 250;
stage.addChild(video10);
display10.addEventListener(AsyncErrorEvent.ASYNC_ERROR,nomostrar10);
function nomostrar10(event:AsyncErrorEvent):void
{
}
} 

我试图用以下方法删除它们:

if (event.keyCode == Keyboard.RIGHT)
{
        nextFrame();
                video10.clear();
}

但我是as3的新手而且它不起作用。 感谢。

2 个答案:

答案 0 :(得分:1)

由于您没有发布整个代码,因此很难确定问题。我认为问题在于你的键盘事件没有触发的问题。我建议您尝试使用以下代码来查看它是否可以解决您的问题。

我没有调用video10.clear();,而是完全删除了对象。

import flash.events.MouseEvent;
import flash.events.KeyboardEvent;
import flash.net.NetConnection;
import flash.media.Video;
import flash.net.NetStream;

miguel_btn.addEventListener(MouseEvent.CLICK, video_miguel);
stage.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown);

var video10:Video;
var display10:NetStream;

function video_miguel(event:MouseEvent):void {

    display10 = new NetStream(new NetConnection());
    display10.play("Miguel_1.flv");

    video10 = new Video();
    video10.attachNetStream(display10);
    video10.x = 150;
    video10.y = 250;

    stage.addChild(video10);
}

function handleKeyDown(ke:KeyboardEvent):void {
    //keycode 39 is the right arrow key.
    if(ke.keyCode == 39) {
        nextFrame();
    //We can completely remove the video by calling the function below.
        stage.removeChild(video10);
    }
}

答案 1 :(得分:1)

我同意Andreas,我建议关闭netStream并仍然清除视频:

display10.close();
video10.clear();
stage.removeChild(video10);