百度空间 | 百度首页 
 
查看文章
 
关于升级flash10后,用js控制播放声音的巧妙解决方法
2008-11-16 13:03
  我不是专职flash,甚至能说对flash一窍不通。不过为了解决项目中的问题,有时就翻翻手册写那么几行。
自从万恶的flash9被忽然升级到flash10后,问题出现了,先是上传不能用,这个好解决,把按钮变成flash的就好了。但接着就是用js控制播放声音也不能用,这个必须用js控制,后来发现dict.cn很好的解决了这个问题,查看到了它的js文件中有个gotoFrame(1)类似这样的js函数,于是受到启发,通过用js控制flash播放到第几帧,不就可以巧妙的解决吗?
于是把之前用文档类写的声音flash改成了在帧中写action.

1.新建一文档,在第一帧写:
import flash.display.Sprite;
import flash.events.*;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
import flash.external.*;
import flash.system.Security;
flash.system.Security.allowDomain("xxx.com"); //你的域
var url="http://www.xxx.com/test.mp3"; //声音文件
ExternalInterface.addCallback("playSong",function(){gotoAndPlay(1);}); //让js通过playSong()来调用
var request:URLRequest = new URLRequest(url);
var soundFactory:Sound = new Sound();
soundFactory.load(request);
soundFactory.play();
gotoAndPlay(2);
stop();

2.在第二帧写
stop();

3.编译后
function getFlash(movieName)
{
    if (window.document[movieName])
    {
        return window.document[movieName];
    }
    if (navigator.appName.indexOf("Microsoft Internet")==-1)
    {
        if (document.embeds && document.embeds[movieName])
            return document.embeds[movieName];
    }
    else
    {
        return document.getElementById(movieName);
    }
}

通过以下js代码,即可实现在flash9,flash10中播放声音
try{
getFlash("swfid").playSong();
}catch(e){

}

谁有更好的方案请告知。


类别:Flash | 添加到搜藏 | 浏览() | 评论 (3)
 
最近读者:
 
网友评论:
1
2008-11-17 00:28 | 回复
我在农行办的,有个光盘,到现在我还没安装... 谢谢朋友,问候!
 
2
2008-11-17 15:02 | 回复
哈哈,只是在我心里把李彦宏当作好朋友而已!祝他生日快乐!
 
3
2008-11-17 15:04 | 回复
哦,谢谢你啊!不过,我还是不换了,因为我办那个给了55元费用 不用的说,岂不是白花钱了?那天我请人帮我安装好了,这样想的~ 下午好啊,问好朋友!
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu