Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 使用变量一次只允许播放一个视频_Actionscript 3_Flash_Conditional Statements_Memory Efficient - Fatal编程技术网

Actionscript 3 使用变量一次只允许播放一个视频

Actionscript 3 使用变量一次只允许播放一个视频,actionscript-3,flash,conditional-statements,memory-efficient,Actionscript 3,Flash,Conditional Statements,Memory Efficient,我最近创建了一个有四个按钮的项目。每个按钮向舞台添加一个FLV播放器并播放视频。在测试过程中,我注意到在第一个函数加载完电影之前单击另一个按钮,将播放两部电影 有没有更有效的处理方法?我觉得这里有很多冗余代码,有没有更好的方法来执行以下操作: 按下按钮一 加载一个视频 忽略所有其他事件侦听器,直到电影结束,或用户解除视频(单击以解除) 我最初认为创建两个函数是个好主意,一个删除所有事件侦听器,另一个添加所有事件侦听器。按下按钮后,在加载FLVPlayback之前,删除所有事件侦听器。电影完成

我最近创建了一个有四个按钮的项目。每个按钮向舞台添加一个FLV播放器并播放视频。在测试过程中,我注意到在第一个函数加载完电影之前单击另一个按钮,将播放两部电影

有没有更有效的处理方法?我觉得这里有很多冗余代码,有没有更好的方法来执行以下操作:

  • 按下按钮一
  • 加载一个视频
  • 忽略所有其他事件侦听器,直到电影结束,或用户解除视频(单击以解除)
我最初认为创建两个函数是个好主意,一个删除所有事件侦听器,另一个添加所有事件侦听器。按下按钮后,在加载FLVPlayback之前,删除所有事件侦听器。电影完成后,将所有听众添加回。这似乎很费力,而且效率很低

我写了下面的代码作为我尝试做的一个例子。(但每次都会输出相同的字符串“One Can play”)

我尝试了这段代码,我让它“正常工作”,但每个函数都会将canLaunchMovie设置为true

import flash.events.Event;

var canLaunchMovie:Boolean;

buttonMCOne.addEventListener(MouseEvent.MOUSE_DOWN, playMovieOne);
buttonMCTwo.addEventListener(MouseEvent.MOUSE_DOWN, playMovieTwo);
buttonMCThree.addEventListener(MouseEvent.MOUSE_DOWN, playMovieThree);
buttonMCFour.addEventListener(MouseEvent.MOUSE_DOWN, playMovieFour);

function playMovieOne(e:Event):void {
    if(canLaunchMovie = true){
        this.canLaunchMovie = false;
        trace("One Can Play"); // do all that video stuff for video one
    } else {
        trace("I can't do that(play movie one) Dave");
    }
}

function playMovieTwo(e:Event):void {
    if(canLaunchMovie = true){
        this.canLaunchMovie = false;
        trace("Two Can Play"); // do all that video stuff for video one
    } else {
        trace("I can't do that(play movie two) Dave");
    }
}

function playMovieThree(e:Event):void {
    if(canLaunchMovie = true){
        this.canLaunchMovie = false;
        trace("Three Can Play"); // do all that video stuff for video one
    } else {
        trace("I can't do that(play movie three) Dave");
    }
}

function playMovieFour(e:Event):void {
    if(canLaunchMovie = true){
        this.canLaunchMovie = false;
        trace("Four Can Play"); // do all that video stuff for video one
    } else {
        trace("I can't do that(play movie four) Dave");
    }
}

您不需要有多个flvplayback。
您只需更改flvplayback的
源代码。

Arg。。所以从技术上来说,这个更新不起作用。我做的作业总是正确的,而不是做平等性检查。它之所以有效,是因为每个按钮都会指定canLaunchMovie=true;与论坛网站不同,我们不使用“感谢”或“感谢任何帮助”或签名。顺便说一句,这是“提前感谢”,而不是“提前感谢”。
import flash.events.Event;

var canLaunchMovie:Boolean;

buttonMCOne.addEventListener(MouseEvent.MOUSE_DOWN, playMovieOne);
buttonMCTwo.addEventListener(MouseEvent.MOUSE_DOWN, playMovieTwo);
buttonMCThree.addEventListener(MouseEvent.MOUSE_DOWN, playMovieThree);
buttonMCFour.addEventListener(MouseEvent.MOUSE_DOWN, playMovieFour);

function playMovieOne(e:Event):void {
    if(canLaunchMovie = true){
        this.canLaunchMovie = false;
        trace("One Can Play"); // do all that video stuff for video one
    } else {
        trace("I can't do that(play movie one) Dave");
    }
}

function playMovieTwo(e:Event):void {
    if(canLaunchMovie = true){
        this.canLaunchMovie = false;
        trace("Two Can Play"); // do all that video stuff for video one
    } else {
        trace("I can't do that(play movie two) Dave");
    }
}

function playMovieThree(e:Event):void {
    if(canLaunchMovie = true){
        this.canLaunchMovie = false;
        trace("Three Can Play"); // do all that video stuff for video one
    } else {
        trace("I can't do that(play movie three) Dave");
    }
}

function playMovieFour(e:Event):void {
    if(canLaunchMovie = true){
        this.canLaunchMovie = false;
        trace("Four Can Play"); // do all that video stuff for video one
    } else {
        trace("I can't do that(play movie four) Dave");
    }
}