我在使用 javascript 警报功能时遇到问题

发布于 2024-11-30 09:41:12 字数 1104 浏览 0 评论 0原文

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

第一个 - 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”和“end”。我在 AS3 中使用了 externalInterface.callBack

actionscript3.0

callback 函数中的

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

我的问题: 如果我在 sendTojs 中使用 alert 函数,则条件有效,否则无效。为什么?

I am having 3 kind of swf players and if any one of player is playing all others should pause.

1 st one - audioPlayer - autoplay = true;
2 nd one - audioPlayer - autoplay = false;
3 rd one - audioPlayer - autoplay = false;

If 2nd and 3rd paused or ended then 1st one should continue if it was not paused.

This is my java script code.

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");
            }
         }
        }

here sndToAS is my actionscript function and tmp will have the strings "resume", "pause" and "end". I have used externalInterface.callBack in AS3.

actionscript3.0

within callback function

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

My problem:
if I use the alert function within sendTojs then the condition is working else not. Why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

奈何桥上唱咆哮 2024-12-07 09:41:12

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

If adding an alert fixes the problem, then it's a timing problem. The alert stops execution until you dismiss it, radically changing the timing of the code. Perhaps there's an asynchronous operation that needs to complete?

祁梦 2024-12-07 09:41:12

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

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

Perhaps you have a situation where the display is not being updated until the script pauses (in this case for an alert). Try using setTimeout().

if(tmp2=="end")
 {
    thisMovie("movie0").sndToAS("pause"),
    setTimeout(function() {},1);
 } 
_蜘蛛 2024-12-07 09:41:12

你说

我在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);

you said

I have used externalInterface.call in AS3

its not externalInterface.call 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;
  }
}

In javaScript you need this

thisMovie("movie0").sndToAS(tmp);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文