2011-08-18 25 views
0

我有3种瑞士法郎玩家,如果任何一个玩家玩所有其他人应该暂停。我有一个问题与JavaScript警报功能

1日一个 - 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将字符串 “简历”, “暂停” 和 “结束”。我在AS3中使用了externalInterface.callBack

ActionScript3.0的

callback功能

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

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

+0

这些答案有帮助吗? –

回答

4

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

+0

如何更改代码的时间? – Benny

+0

非常感谢... – Benny

1

也许你有一种情况,在脚本暂停之前显示没有被更新(在这种情况下为警报)。尝试使用setTimeout()

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

感谢您的回答。 – Benny

0

你说

我在AS3使用externalInterface.call

它不是externalInterface.callExternalInterface.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); 
+0

我对'call'和'callBack'函数没有任何问题。 – Benny

+0

然后严重地发布你的所有代码,当你只发布一条违规代码时,你如何期待任何人的帮助?????????? –

+0

我添加了一些额外的代码... – Benny