我有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
函数,则条件不起作用。为什么呢?
答案 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);