当您单击特定链接时,如何使SWF音频停止?

时间:2012-01-21 12:29:50

标签: flash

大家。 这是关于实时支持聊天。当一个成员想要联系我时,聊天正在响铃(所以这个swf音频文件开始播放)。每当swf音频警报开始时,我都会收到一个链接:“用户X想要聊天,点击此处回复”。 在我“点击这里”后,一个新的弹出窗口(聊天)打开,但是swf音频一直播放而没有停止,就像接听电话,说话但仍然响个不停。 我试过doStop()函数; - 不工作我尝试附加到“回答链接”不同的命令,但无法做到。怎么解决这个问题?

这是打开聊天的链接

$json['msg'] = 'You have a chat call <a href="#" onClick="return mbetter(\'http://mysite.com/chat/?chat_session='.$rows['id'].'\')">Click to accept</a>';

这是帮助我在弹出窗口中打开聊天功能“mbetter”

<!--function mbetter(url) {
newwindow=window.open(url,'name','height=610,width=550');
if (window.focus) {newwindow.focus()}
return false;} // -->

播放器脚本:

function getPlayer(pid) {
var obj = document.getElementById(pid);
if (obj.doPlay) return obj;
for(i=0; i<obj.childNodes.length; i++) {
    var child = obj.childNodes[i];
    if (child.tagName == "EMBED") return child;
}}

function doPlay() {
fname = "chatalert.wav";
var player=getPlayer("audio1");
player.play(fname);}

function doStop() {
var player=getPlayer("audio1");
player.doStop();}

我不知道这是否有帮助,但我会发布以防万一,对象:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
width="1"
height="1"
id="audio1">
<embed src="wavplayer.swf?gui=mini&h=20&w=300&sound=chatalert.wav&"
    bgcolor="#ffffff"
    width="1"
    height="1"
    allowScriptAccess="always"
    type="application/x-shockwave-flash"
    pluginspage="http://www.macromedia.com/go/getflashplayer"
/></object>

所以,简短的问题是,你怎么能在你点击一个链接(弹出)后停止播放,因为你不再需要那个警报了?谢谢。

1 个答案:

答案 0 :(得分:1)

您的HTML代码不正确。试试这个:

 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
         id="audio1" width="1" height="1"
         codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
     <param name="movie" value="wavplayer.swf?gui=mini&h=20&w=300&sound=chatalert.wav&" />
     <param name="quality" value="high" />
     <param name="bgcolor" value="#FFFFFF" />
     <param name="allowScriptAccess" value="always" />
     <embed src="wavplayer.swf?gui=mini&h=20&w=300&sound=chatalert.wav&" quality="high" bgcolor="#FFFFFF"
         width="1" height="1" name="audio1" align="middle"
         play="true" loop="false" quality="high" allowScriptAccess="always"
         type="application/x-shockwave-flash"
         pluginspage="http://www.macromedia.com/go/getflashplayer">
     </embed>
 </object>

您可以在Adobe help上找到有关javascript / flash互动的更多信息。

<强>更新

尝试通过此javascript代码获取swf对象:

if (navigator.appName.indexOf("Microsoft") == -1)
    swfObject = document["audio1"];
else
    swfObject = window["audio1"];
相关问题