我有一个视频播放器,当按钮被按下,一个视频加载和播放。每隔一段时间,当我按钮捣碎,我就能得到多个视频播放一次。我以为我已经设置了代码,以便在加载另一个视频之前删除所有的孩子。
我有一种感觉,我的问题可以最终使用BUFFERING_STATE_ENTERED侦听器来解决。
当BUFFERING_STATE_ENTERED处于活动状态时,是否有一种很好的方法来禁用屏幕上的所有按钮,并在BUFFERING_STATE_ENTERED完成后重新打开所有按钮?
//作为快速修复,我在按钮区域加载一个透明的图像,并在开始时删除图像,当用户选择一个新视频,IT进入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);
            }
}发布于 2011-12-02 17:01:58
我的想法是,一旦你选择了一个视频,就会禁用选择另一个视频的能力,并且一旦你准备好让用户选择另一个视频,就重新启用它。我不知道你的程序是如何设置的,所以有更多的信息将是有用的。
如果您有几个按钮,每个视频一个,那么我建议简单地使用一个布尔值,每个按钮在单击任何操作之前都会进行检查。我们叫它loadingVideo吧。
if(!loadingVideo) {
    loadingVideo = true;
    //(button's actions here)
} else {
    //(maybe a warning message here)
}一旦视频被初始化(可能是VideoEvent.PLAYING_STATE_ENTERED),您将需要再次将loadingVideo设置为false。这样,如果你的用户想要改变视频,他们可以。
发布于 2011-12-02 15:25:40
根据给定时间舞台上按钮的数量,您最好的选择可能是分别禁用每个按钮:
buttonName.mouseEnabled = false; // disable the button
buttonName.mouseChildren = false; // disable any subclips to prevent them from also receiving clicks如果你真的想采取严格的措施禁用所有按钮,你可以使用.
stage.mouseChildren = false;发布于 2011-12-02 15:18:27
听起来你在使用多个视频资产。为什么不使用一个单一的视频资产,所有的视频?这就是为什么你永远不能让两个人同时演奏。
https://stackoverflow.com/questions/8358416
复制相似问题