您好我正在做一个有一些视频的演示文稿。要观看视频,我已经制作了一些按钮,我找到了一个代码,可以将外部视频带到舞台上。问题是,当我转到下一帧时,最后一个视频停留在那里。这是我必须在舞台上设置视频的代码:
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的新手而且它不起作用。 感谢。
答案 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);