我有javascript警报功能的问题

时间:2011-08-18 15:00:33

标签: javascript actionscript-3 alert

我有3种瑞士法郎玩家,如果其中任何一个玩家正在玩,其他玩家应该暂停。

第一个 - audioPlayer - autoplay = true; 第二个 - audioPlayer - autoplay = false; 第3版 - 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是我的动作脚本功能, tmp 将包含字符串“resume”,“pause”和“end”。我在AS3中使用了externalInterface.callBack

ActionScript3.0的

callback函数

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

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

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

在脚本暂停(在这种情况下为警报)之前,您可能会遇到显示未更新的情况。尝试使用setTimeout()

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

答案 2 :(得分:0)

你说

  

我在AS3中使用了externalInterface.call

它不是 externalInterface.call 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);