找回密码
 注-册

QQ登录

只需一步,快速开始

查看: 1478|回复: 0

在FLASH中如何精确控制声音的开始暂停

[复制链接]
Leya 发表于 2008-3-28 10:14:23 | 显示全部楼层 |阅读模式
  1. 明白以下代码问题就迎刃而解:
  2. sd=newSound();
  3. sd.attachSound("loop");
  4. begin=0;
  5. play_status=false;
  6. play_now.onPress=function(){
  7. if(!play_status){
  8. sd.start(begin);
  9. play_status=true;
  10. }
  11. }
  12. pause_now.onPress=function(){
  13. if(play_status){
  14. begin=sd.position/1000;
  15. sd.stop();
  16. play_status=false;
  17. }
  18. }
  19. stop_now.onPress=function(){
  20. begin=0;
  21. sd.stop();
  22. play_status=false;
  23. }
  24. sd.onSoundComplete=function(){
  25. play_status=false;
  26. }
  27. stop();

  28. 另解:

  29. 一般我们控制声音的播放、暂停都是先把导入声音定义为stream的方式来实现的。这里介绍一下用Sound对象来实现的方法:

  30. 1、导入声音文件,例子中用Windows中的“WindowsLogonSound.wav”

  31. 2、打开library右键点导入的声音,选Linkage,在对话框中勾上ExportforActionScript,其他可以照默认的不用改。

  32. 3、在第一帧写如下AS:
  33. song=newSound();//定义一个名为song的声音对象
  34. song.attachSound("WindowsLogonSound.wav");//绑定声音对象为WindowsLogonSound.wav,此处引号内就是在2中对话框中设置的Identifier。
  35. play_status=false;//用于检测是否在播放中,防止重复播放
  36. song.onSoundComplete=function(){//播放结束则触发的事件
  37. sp=0;
  38. play_status=false;
  39. };

  40. 4、建立3个BT:start、pause和stop以控制播放、暂停。

  41. 5、start的AS:
  42. on(release){
  43. if(play_status==false){//如果没有开始播放
  44. song.start(sp);//播放声音,开始时变量sp没有赋值,默认从头开始放,如果已经赋值,则按相应值播放,单位秒。
  45. play_status=true;//播放状态为真
  46. }
  47. }

  48. 6、pause的AS:
  49. on(release){
  50. if(play_status==true){
  51. sp=song.position/1000;//在停止前获取当前播放的位置,单位是毫秒
  52. song.stop();
  53. play_status=false;
  54. }
  55. }

  56. 7、stop的AS:
  57. on(release){
  58. if(play_status==true){
  59. sp=0;
  60. song.stop();
  61. play_status=false;
  62. }
  63. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注-册

本版积分规则

Archiver|手机版|小黑屋|DoDVip ( 桂ICP备14000730号 )

GMT+8, 2024-5-6 10:23 , Processed in 0.057135 second(s), 20 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表