我有一个问题与javascript警报功能

I had a problem with javascript alert fuunction

本文关键字:功能 javascript 有一个 问题      更新时间:2023-09-26

我有3种swf播放器,如果其中任何一种播放器正在播放,则所有其他播放器都应该暂停。

1第一个- audioPlayer - autoplay = true;第二个- audioPlayer - autoplay = false;第三个- audioPlayer - autoplay = false;

如果第二个和第三个暂停或结束,那么如果没有暂停,第一个应该继续。

这是我的java脚本代码。
function videoPlaying(val){
    tmp = val;
}    
function sendTojs(value){
        if(value == "end" || value == "pause"){
         thisMovie("movie0").sndToAS("pause");
         alert("done");
    }
    for(i=0; i<=7; i++){
         var mov="movie"+i;
        if(tmp!=mov){
                thisMovie(mov).sndToAS("resume");
            }
         }
        }

这里sndToAS是我的actionscript函数和tmp将有字符串"resume","pause"answers"end"。我在AS3中使用了externalInterface.callBack

actionscript3。0

within callback function

if(val == "pause")
{
    videoPlay();
}

我的问题:如果我在sendTojs中使用alert函数,则条件正在工作,否则不行。为什么?

如果添加警报可以解决问题,那么这是一个时间问题。警报将停止执行,直到您解除它,从而从根本上改变代码的时间。也许有一个异步操作需要完成?

也许您遇到的情况是,直到脚本暂停(在本例中为警报)才更新显示。尝试使用setTimeout() .

if(tmp2=="end")
 {
    thisMovie("movie0").sndToAS("pause"),
    setTimeout(function() {},1);
 } 

你说

我使用了externalInterface。呼叫AS3

不是externalInterface。调用 its ExternalInterface.addCallback

ExternalInterface.addCallback( "sndToAS", myJsCallBack );
function myJsCallBack ( val:String ):void{
  switch( val ){ // do your validation in ActionScript
    case "pause":
      // do pause toggle here
      break;
    case "end":
      // do stop here
      break;
    case "start":
      // do start here
      break;
  }
}

在javaScript中你需要这个

thisMovie("movie0").sndToAS(tmp);