0

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

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 的新手,它不起作用。谢谢。

4

2 回答 2

1

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

display10.close();
video10.clear();
stage.removeChild(video10);
于 2013-08-08T09:33:10.370 回答
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);
    }
}
于 2013-08-08T02:41:35.663 回答