我有一个视频播放器,当按下按钮时,视频会加载并播放。每当我按下混搭时,我就可以同时播放多个视频。在加载另一个视频之前,我以为我已经设置了代码以删除所有孩子。
我觉得使用BUFFERING_STATE_ENTERED监听器可以最终解决我的问题。
当BUFFERING_STATE_ENTERED处于活动状态时,是否有一种很好的方法可以禁用屏幕上的所有按钮,并在BUFFERING_STATE_ENTERED完成后重新打开所有按钮?
//快速修复我在我的按钮区域加载透明图像并在开始时删除图像, 当用户选择一个新视频并进入BUFFER_STATE_ENTERED时,它会返回。这是从他们那里得到的 点击按钮。 这不是永久性的。**
var ButtonBlock:empty_png = new empty_png;
ButtonBlock.x = 1550;
my_player.addEventListener(VideoEvent.BUFFERING_STATE_ENTERED, bufferPlay);
function bufferPlay(e:VideoEvent):void {
trace("IN BUFFER");
addChild(ButtonBlock);
}
my_player.addEventListener(VideoEvent.PLAYING_STATE_ENTERED, startPlay);
function startPlay(e:VideoEvent):void {
if(ButtonBlock)
{
removeChild(ButtonBlock);
}
}
答案 0 :(得分:1)
根据您在指定时间在舞台上的按钮数量,您最好的选择可能是单独禁用每个按钮:
buttonName.mouseEnabled = false; // disable the button
buttonName.mouseChildren = false; // disable any subclips to prevent them from also receiving clicks
如果你想采取严厉禁用所有按钮的措施,你可以使用......
stage.mouseChildren = false;
答案 1 :(得分:1)
我的想法是,只要您选择另一个视频,就会禁用选择其他视频的功能,并在您准备好让用户选择另一个视频后重新启用它。我不知道你的程序是如何设置的,所以有更多的信息会有用。
如果你有几个按钮,每个视频一个按钮,那么我建议只需要一个布尔值,每个按钮在点击之前做任何事情都要检查。我们称之为loadingVideo
。
if(!loadingVideo) {
loadingVideo = true;
//(button's actions here)
} else {
//(maybe a warning message here)
}
视频初始化后(可能是VideoEvent.PLAYING_STATE_ENTERED
),您需要再次将loadingVideo
设置为false。这样,如果您的用户想要更改他们可以的视频。
答案 2 :(得分:0)
听起来您正在使用多个视频资源。为什么不只是使用一个视频资产来收看所有视频?这就是为什么你不能一次玩两次。