香江之水音画网

查看: 1268|回复: 7
打印 上一主题 下一主题

【FLASH8.0】纯代码制作MP3音乐播放器

[复制链接]
  • TA的每日心情
    开心
    2019-12-19 11:48
  • 签到天数: 238 天

    [LV.7]常住居民III

    跳转到指定楼层
    楼主
    发表于 2018-10-7 09:24:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 漫步人生 于 2018-10-9 10:23 编辑




    1. //新建as2.0文档(设置默认),在主场景第1帧粘贴以下语句【把文字 代码全部复制粘贴】

    2. //画背景并定位
    3. this.createEmptyMovieClip("beijing",this.getNextHighestDepth());
    4. with (beijing) {
    5. beginFill(0x666699);
    6. moveTo(0,0);
    7. lineTo(300,0);
    8. lineTo(300,370);
    9. lineTo(0,370);
    10. endFill();
    11. import flash.filters.*;
    12. filters = [new DropShadowFilter()];
    13. _x = 175;
    14. _y = 75;
    15. }

    16. //画小框并定位
    17. this.createEmptyMovieClip("xiaokuang",this.getNextHighestDepth());
    18. with (xiaokuang) {
    19. beginFill(0x000000);
    20. lineStyle(1,0x33cc33,100);
    21. moveTo(0,0);
    22. lineTo(280,0);
    23. lineTo(280,60);
    24. lineTo(0,60);
    25. endFill();
    26. _x = 185;
    27. _y = 100;
    28. }

    29. //画5个黑三角并定位
    30. this.createEmptyMovieClip("sanjiao",this.getNextHighestDepth());
    31. with (sanjiao) {
    32. beginFill(0x000000);
    33. moveTo(0,0);
    34. lineTo(12,7.5);
    35. lineTo(0,15);
    36. endFill();
    37. }
    38. sanjiao._visible = 0;
    39. for (i=1; i<=5; i++) {
    40. duplicateMovieClip("sanjiao", "sanjiao"+i, this.getNextHighestDepth());
    41. sanjiao1._x = 235;
    42. sanjiao2._x = 187;
    43. sanjiao3._x = 194;
    44. sanjiao4._x = 212;
    45. sanjiao5._x = 219;
    46. sanjiao2._xscale = sanjiao3._xscale=50;
    47. sanjiao4._xscale = sanjiao5._xscale=-50;
    48. sanjiao1._y = sanjiao2._y=sanjiao3._y=sanjiao4._y=sanjiao5._y=190;
    49. }

    50. //画2个矩形并定位
    51. this.createEmptyMovieClip("juxing",this.getNextHighestDepth());
    52. with (juxing) {
    53. beginFill(0x000000);
    54. moveTo(0,0);
    55. lineTo(5,0);
    56. lineTo(5,12);
    57. lineTo(0,12);
    58. endFill();
    59. }
    60. juxing._visible = 0;
    61. for (i=1; i<=2; i++) {
    62. duplicateMovieClip("juxing", "juxing"+i, this.getNextHighestDepth());
    63. juxing1._x = 257;
    64. juxing1._y = juxing2._y=191.5;
    65. juxing2._x = 264.2;
    66. }

    67. //画小喇叭并定位
    68. this.createEmptyMovieClip("laba",this.getNextHighestDepth());
    69. with (laba) {
    70. beginFill(0x000000);
    71. moveTo(0,4);
    72. lineTo(6,4);
    73. lineTo(12,0);
    74. lineTo(12,15);
    75. lineTo(6,10);
    76. lineTo(0,10);
    77. endFill();
    78. _x = 278;
    79. _y = 190;
    80. }

    81. //画音量控制的底图并定位
    82. this.createEmptyMovieClip("yinliangdi",this.getNextHighestDepth());
    83. with (yinliangdi) {
    84. beginFill(0x000000);
    85. moveTo(0,10);
    86. lineTo(70,0);
    87. lineTo(70,10);
    88. endFill();
    89. _x = 295;
    90. _y = 192;
    91. }

    92. //画音量控制滑块并能拖动
    93. this.createEmptyMovieClip("yinlianghuakuai",this.getNextHighestDepth());
    94. with (yinlianghuakuai) {
    95. beginFill(0x996600);
    96. moveTo(0,0);
    97. lineTo(6,0);
    98. lineTo(6,10);
    99. lineTo(0,10);
    100. endFill();
    101. _x = 359;
    102. _y = 192;
    103. }
    104. yinlianghuakuai.onPress = function() {
    105. startDrag(this, false, 295, 192, 359, 192);
    106. };
    107. yinlianghuakuai.onRelease = yinlianghuakuai.onReleaseOutside=function () {
    108. stopDrag();
    109. };

    110. //画显示进度的底图并定位
    111. this.createEmptyMovieClip("jindutiaodi",this.getNextHighestDepth());
    112. with (jindutiaodi) {
    113. beginFill(0x000033);
    114. moveTo(0,0);
    115. lineTo(180,0);
    116. lineTo(180,3);
    117. lineTo(0,3);
    118. endFill();
    119. _x = 185;
    120. _y = 185;
    121. }

    122. //画下载进度条并定位
    123. this.createEmptyMovieClip("xiazaijindutiao",this.getNextHighestDepth());
    124. with (xiazaijindutiao) {
    125. beginFill(0x663300);
    126. moveTo(0,0);
    127. lineTo(180,0);
    128. lineTo(180,3);
    129. lineTo(0,3);
    130. endFill();
    131. _x = 185;
    132. _y = 185;
    133. }

    134. //画播放进度条并定位
    135. this.createEmptyMovieClip("bofangjindutiao",this.getNextHighestDepth());
    136. with (bofangjindutiao) {
    137. beginFill(0x009900);
    138. moveTo(0,0);
    139. lineTo(180,0);
    140. lineTo(180,3);
    141. lineTo(0,3);
    142. endFill();
    143. _x = 185;
    144. _y = 185;
    145. }

    146. //创建“已下载”文本
    147. this.createTextField("yixiazai_txt",this.getNextHighestDepth(),185,165,0,0);
    148. my_fmt = new TextFormat();
    149. my_fmt.font = "宋体";
    150. my_fmt.color = 0x000000;
    151. my_fmt.size = 12;
    152. yixiazai_txt.text = "已下载:";
    153. yixiazai_txt.autoSize = true;
    154. yixiazai_txt.setTextFormat(my_fmt);

    155. //创建“已播放”文本
    156. this.createTextField("yibofang_txt",this.getNextHighestDepth(),285,165,0,0);
    157. my_fmt = new TextFormat();
    158. my_fmt.font = "宋体";
    159. my_fmt.color = 0x000000;
    160. my_fmt.size = 12;
    161. yibofang_txt.text = "已播放:";
    162. yibofang_txt.autoSize = true;
    163. yibofang_txt.setTextFormat(my_fmt);

    164. //创建显示“下载百分比”的动态文本
    165. this.createTextField("xiazaibfb_txt",this.getNextHighestDepth(),240,163,0,0);
    166. my_fmt = new TextFormat();
    167. my_fmt.font = "宋体";
    168. my_fmt.color = 0x000000;
    169. my_fmt.size = 12;
    170. xiazaibfb_txt.autoSize = true;
    171. xiazaibfb_txt.setTextFormat(my_fmt);

    172. //创建显示“播放百分比”的动态文本
    173. this.createTextField("bofangbfb_txt",this.getNextHighestDepth(),340,163,0,0);
    174. my_fmt = new TextFormat();
    175. my_fmt.font = "宋体";
    176. my_fmt.color = 0x000000;
    177. my_fmt.size = 12;
    178. bofangbfb_txt.autoSize = true;
    179. bofangbfb_txt.setTextFormat(my_fmt);

    180. //创建5个分别覆盖在“快进”、“快退”、“播放”、“暂停”和“喇叭”上的隐形按钮
    181. this.createEmptyMovieClip("yinxinganniu",this.getNextHighestDepth());
    182. with (yinxinganniu) {
    183. beginFill(0xffffff,30);
    184. moveTo(0,0);
    185. lineTo(15,0);
    186. lineTo(15,15);
    187. lineTo(0,15);
    188. endFill();
    189. _x = 185;
    190. _y = 190;
    191. }
    192. yinxinganniu._visible = 0;
    193. for (i=1; i<=5; i++) {
    194. duplicateMovieClip(yinxinganniu, "yinxinganniu"+i, this.getNextHighestDepth());
    195. this["yinxinganniu"+i]._x = 185+22.8*(i-1);
    196. this["yinxinganniu"+i]._y = 190;
    197. this["yinxinganniu"+i]._alpha = 0;
    198. this["yinxinganniu"+i].onRollOver = function() {
    199. this._alpha = 70;
    200. };
    201. this["yinxinganniu"+i].onRollOut = function() {
    202. this._alpha = 0;
    203. };
    204. }

    205. //快进
    206. yinxinganniu1.onPress = function() {
    207. mysound.stop();
    208. mysound.start(mysound.position/1000+10);
    209. };

    210. //快退
    211. yinxinganniu2.onPress = function() {
    212. mysound.stop();
    213. mysound.start(mysound.position/1000-10);
    214. };

    215. //播放
    216. yinxinganniu3.onPress = function() {
    217. if (tt) {
    218. mysound.stop();
    219. mysound.start(tt);
    220. } else {
    221. mysound.stop();
    222. mysound.start(0);
    223. }
    224. for (i=1; i<=20; i++) {
    225. _root["dianpingtiao"+i]._visible = 1;
    226. }
    227. };
    复制代码


    紧接下面的代码

    评分

    参与人数 3威望 +23 金钱 +23 贡献 +23 收起 理由
    红松故乡 + 7 + 7 + 7 非常精彩!
    雪墨 + 9 + 9 + 9 谢谢分享,论坛有您更精彩!
    岩新新 + 7 + 7 + 7 非常精彩!

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-12-19 11:48
  • 签到天数: 238 天

    [LV.7]常住居民III

    沙发
     楼主| 发表于 2018-10-7 09:26:10 | 只看该作者
    本帖最后由 漫步人生 于 2018-10-9 10:20 编辑

    紧接着下面代码:
    1. //暂停
    2. yinxinganniu4.onPress = function() {
    3. mysound.stop();
    4. tt = mysound.position/1000;
    5. for (i=1; i<=20; i++) {
    6. _root["dianpingtiao"+i]._visible = 0;
    7. }
    8. };

    9. //画红斜杠并定位
    10. this.createEmptyMovieClip("hongxian",this.getNextHighestDepth());
    11. with (hongxian) {
    12. lineStyle(2,0xff0000,100);
    13. moveTo(0,0);
    14. lineTo(13,13);
    15. _x = 278;
    16. _y = 190;
    17. }
    18. hongxian._visible = 0;

    19. //静音
    20. k = 0;
    21. yinxinganniu5.onPress = function() {
    22. k++;
    23. if (k%2 == 1) {
    24. yinlianghuakuai._x = 295;
    25. hongxian._visible = 1;
    26. for (i=1; i<=20; i++) {
    27. _root["dianpingtiao"+i]._visible = 0;
    28. }
    29. } else {
    30. yinlianghuakuai._x = 359;
    31. hongxian._visible = 0;
    32. for (i=1; i<=20; i++) {
    33. _root["dianpingtiao"+i]._visible = 1;
    34. }
    35. }
    36. };

    37. //画20根电频条并定位
    38. this.createEmptyMovieClip("dianpingtiao",this.getNextHighestDepth());
    39. with (dianpingtiao) {
    40. beginFill(0x005555);
    41. moveTo(0,0);
    42. lineTo(7,0);
    43. lineTo(7,-35);
    44. lineTo(0,-35);
    45. endFill();
    46. }
    47. dianpingtiao._visible = 0;
    48. for (i=1; i<=20; i++) {
    49. duplicateMovieClip("dianpingtiao", "dianpingtiao"+i, this.getNextHighestDepth());
    50. this["dianpingtiao"+i]._visible = 0;
    51. this["dianpingtiao"+i]._x = 187+9*(i-1);
    52. this["dianpingtiao"+i]._y = 160;
    53. }

    54. //创建歌名文本
    55. this.createTextField("geming_txt",this.getNextHighestDepth(),185,218,0,0);
    56. my_fmt = new TextFormat();
    57. my_fmt.font = "宋体";
    58. my_fmt.color = 0x003366;
    59. my_fmt.size = 20;
    60. geming_txt.text = "1、送你一首吉祥的歌\n2、我和草原有个约定\n3、站在草原望北京\n4、美丽的草原我的家\n5、乌兰图雅《女人花》\n6、乌兰图雅《草原妹妹》\n7、乌兰图雅《守望相助》\n8、乌兰图雅《信天游》";
    61. geming_txt.autoSize = true;
    62. geming_txt.setTextFormat(my_fmt);

    63. //签名
    64. this.createTextField("qianming_txt",this.getNextHighestDepth(),298,425,0,0);
    65. my_fmt6 = new TextFormat();
    66. my_fmt6.font = "宋体";
    67. my_fmt6.color = 0xFFFFFF;
    68. my_fmt6.size = 15;
    69. qianming_txt.text = "制作:漫步人生";
    70. qianming_txt.autoSize = true;
    71. qianming_txt.setTextFormat(my_fmt6);

    72. //作品名
    73. this.createTextField("timu_txt",this.getNextHighestDepth(),220,78,0,0);
    74. my_fmt7 = new TextFormat();
    75. my_fmt7.font = "黑体";
    76. my_fmt7.color = 0xccccff;
    77. my_fmt7.size = 18;
    78. timu_txt.text = "纯代码MP3播放器   手动播放";
    79. timu_txt.autoSize = true;
    80. timu_txt.setTextFormat(my_fmt7);

    81. //画覆盖在歌名文本上的隐形按钮
    82. this.createEmptyMovieClip("geminganniu",this.getNextHighestDepth());
    83. with (geminganniu) {
    84. beginFill(0x000000,10);
    85. moveTo(0,0);
    86. lineTo(185,0);
    87. lineTo(185,22);
    88. lineTo(0,22);
    89. endFill();
    90. _x = 185;
    91. _y = 220;
    92. }
    93. geminganniu._visible = 0;
    94. for (i=1; i<=8; i++) {
    95. duplicateMovieClip("geminganniu", "geminganniu"+i, this.getNextHighestDepth());
    96. this["geminganniu"+i]._y = 220+20*(i-1);
    97. this["geminganniu"+i]._alpha = 10;
    98. this["geminganniu"+i].onRollOver = function() {
    99. this._alpha = 90;
    100. };
    101. this["geminganniu"+i].onRollOut = function() {
    102. this._alpha = 0;
    103. };
    104. }

    105. //创建显示当前播放曲目名的动态文本
    106. this.createTextField("gm_txt",this.getNextHighestDepth(),0,0,0,0);
    107. gm_txt.autoSize = "left";
    108. gm_txt.textColor = 0x999900;
    109. gm_txt._x = 190;
    110. gm_txt._y = 102;

    111. //自定义函数
    112. function yy(geming, dizhi) {
    113. //边加载边播放
    114. mysound = new Sound();
    115. mysound.loadSound(dizhi,true);
    116. gm_txt.text = geming;
    117. //反复播放
    118. mysound.onSoundComplete = function() {
    119. yy(geming,dizhi);
    120. };
    121. for (i=1; i<=20; i++) {
    122. _root["dianpingtiao"+i]._visible = 1;
    123. }
    124. }

    125. //按下播放相应曲目
    126. geminganniu1.onPress = function() {
    127. yy("1、送你一首吉祥的歌","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-01~1.mp3");
    128. };
    129. geminganniu2.onPress = function() {
    130. yy("2、我和草原有个约定","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-02~1.mp3");
    131. };
    132. geminganniu3.onPress = function() {
    133. yy("3、站在草原望北京","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-03~1.mp3");
    134. };
    135. geminganniu4.onPress = function() {
    136. yy("4、美丽的草原我的家","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-04~1.mp3");
    137. };
    138. geminganniu5.onPress = function() {
    139. yy("5、乌兰图雅《女人花》","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-05~1.mp3");
    140. };  

    141. geminganniu6.onPress = function() {
    142. yy("6、乌兰图雅《草原妹妹》","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-06~1.mp3");
    143. };

    144. geminganniu7.onPress = function() {
    145. yy("7、乌兰图雅《守望相助》","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-07~1.mp3");
    146. };


    147. geminganniu8.onPress = function() {
    148. yy("8、乌兰图雅《信天游》","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-09~1.mp3");
    149. };  


    150. //逐帧刷新
    151. onEnterFrame = function () {
    152. //电频条跳动
    153. for (i=1; i<=20; i++) {
    154. this["dianpingtiao"+i]._yscale = random(120-4*(i-1));
    155. }
    156. //下载进度条显示下载进度
    157. xiazaijindutiao._xscale = int(mysound.getBytesLoaded()/mysound.getBytesTotal()*100);
    158. //播放进度条显示播放进度
    159. bofangjindutiao._xscale = int(mysound.position/mysound.duration*100);
    160. //显示下载百分比
    161. xiazaibfb_txt.text = xiazaijindutiao._xscale+"%";
    162. //显示播放百分比
    163. bofangbfb_txt.text = bofangjindutiao._xscale+"%";
    164. //拖动滑块控制音量
    165. mysound.setVolume(yinlianghuakuai._x-295)/64*100;
    166. };
    167. // 测试,OK!
    复制代码


    源码下载:


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-11-7 23:33
  • 签到天数: 1232 天

    [LV.10]以坛为家III

    板凳
    发表于 2018-10-7 09:41:17 | 只看该作者
    欣赏漫步老师精彩!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-10-8 01:31
  • 签到天数: 773 天

    [LV.10]以坛为家III

    5#
    发表于 2018-10-7 09:52:04 | 只看该作者
    制作一如即往的精彩支持點贊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-7-12 13:09
  • 签到天数: 253 天

    [LV.8]以坛为家I

    6#
    发表于 2018-10-7 18:03:44 | 只看该作者
    创作辛苦,谢谢分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-1-27 09:24
  • 签到天数: 948 天

    [LV.10]以坛为家III

    7#
    发表于 2018-10-8 12:22:54 | 只看该作者
    欣赏精彩制作,点赞。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-9-12 08:54
  • 签到天数: 1475 天

    [LV.10]以坛为家III

    8#
    发表于 2018-10-8 18:23:59 | 只看该作者

    欣赏精彩制作,点赞。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    小黑屋|手机版|Archiver|香江之水音画网  

    GMT+8, 2024-5-2 06:55 , Processed in 0.044061 second(s), 20 queries , Gzip On.

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

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