用户名: 密码: 验证码: QQ--程序群:31736530 动画群:38836599
闪无忧
 
首 页 业界新闻 业界杂谈 Flash教程 Flash源码 Flash图书 Flash酷站 Flex & AIR 供求信息
   本栏目通告:   请大家多多关注AIR,欢迎大家踊跃投稿
当前位置 :首页>Flex-AIR>AIR资讯>列表

AIR及Flex3之mp3播放器教程

[来源:闪客无忧 | 作者:yboy | 时间:2008-03-30 | 点击:  | 收藏本文  【 】]
本教程写得不好, 不能使读者明白, 在这里详细解说一下:
 已使用 MXML 里的控件: Label、Button、HSlider
  Label 控件: 各 Label 用于显示文字标题;
  Button 控件: 音乐的播放与停止, 其中:
       <mx:Button label="play" y="116" x="50" click="playSound()"/>里
   的 click 属性和属性的值起主要作用,这个属性值是一个函数, 此处为 playSound() 函
   数. 播放和停止的函数的功能上面有详细解释了, 这里不重复说.
   
  HSlider 控件:
     这里有三个 HSlider 控件, 分别是:
       播放进度条(progress_hs)、音量控制条(volume_hs)、左右声道控制条(pan_vs).
   
  一、播放进度条(progress_hs)有两个作用: 显示当前播放进度和调节播放进度.
   1、当用户没有拉动此进度条时,它会随着音乐的继续播放而向右缓缓移动,实现此功能的主要代码是:
   
     //进度条能时时刻刻随着音乐的播放而向右移动主要是这个 Timer 类, 它好比以前
     //的 onEnterFrame 和 setInterval, 意义是: 在指定时间间隔内重复执行代码,
     //这里就是在每 10 毫秒内执行一次, 次数为无限次.
     private var myTimer:Timer = new Timer(10, 0);
     
     //AS3.0 事事皆侦听! 这里是要创建侦听器, 小括号内的第二个参数就是下面将要重复执行的函数
     myTimer.addEventListener(TimerEvent.TIMER, timerHandler);
     
     private function timerHandler(event:TimerEvent):void{
     //功能: 显示音乐的播放进度, 进度条会随着音乐的继续播放而向右缓缓移动;
     //把这个公式翻译为中文: 播放进度条的值=当前音乐播放时间/音乐的总时间
      progress_hs.value = my_channel.position/my_sound.length;
     }
     
   2、当用户希望音乐快进或者后退, 就要拉动进度条了. 这里就要注意以下几点:
   
     (1) 用户拉动进度条时, 不希望上面的 timerHandler() 函数被重复执行,
     否则进度条是不能被拉动的. 解决方法: 在此 HSlider 控件标签 <mx:HSlider id="progress_hs" />
     内加上 mouseDown="myTimer.stop()" . 意义: 当鼠标按下(mouseDown)这个控件时, 调用 myTimer
     的 .stop() 方法, 使其停止工作, 以使 timerHandler() 函数不再被重复执行.(2) 当用户调节好进度条后, 需要释放鼠标, 那么上面的 timerHandler() 函数需要被再次重复执行,
     好让进度条继续随着音乐播放而向右移动. 那么在释放鼠标的瞬间需要让 myTimer 继续工作, 实现此功
     能的代码是: mouseUp="myTimer.start()" . 在释放鼠标后, 同时希望音乐能跟着用户的意愿,在指
     定的时间位置上播放, 实现此功能的主要代码是:
       <mx:HSlider id="progress_hs" change="changeProgress()"/>  里面
       的 change="changeProgress()" 就是代表: 每当 "播放进度" 条被用户拉动过
       而使其值改变时,就执行 changeProgress() 函数
       
       private function changeProgress():void{
        //音乐停止且必须停止,是为了从新的播放时间点开始播放
        //(感觉这里麻烦了点, 如果有更好的方法,恳请高手指点!
        //请联系我: www.Y-boy.cn 或 www.RiaHome.cn ,谢谢!)
        my_channel.stop();
        //使音乐从新的时间点开始播放,新的时间点是小括号内的值,
        //即:"播放进度"条的值*音乐的总时间, 为什么会这样呢?
        //因为 HSlider 控件(那条"播放进度")的长度在下面被定义为1,
上一页 1 2 3 45 下一页
文章如果有错误或者缺少文件,请发邮件提交给我们
上一篇:没有了
下一篇:HTML 與JavaScript也能實現Adobe AIR程式
Tags:     教程 播放器 // 播放 进度 音乐 时间 执行 函数 这里
>>> 最新评论:(共有 1 位网友发表了评论)      查看所有评论
  发表评论
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
·本站发布内容均为客观表达作者观点,不代表闪无忧立场,请勿攻击和漫骂
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
  Flex及AIR分类
  Flex资料   Flex动态
  Flex案例   Flex源码
  AIR资讯
  Flex相关
  什么是Flex   什么是AIR
  寻找Flex工作机会
  发布Flex工作机会
  热门文章
·AIR及Flex3之mp3播放器教程
·Adobe AIR教程范例分享及源文件下载
·让Adobe AIR 程序离线运行(翻译)
·HTML 與JavaScript也能實現Adobe AIR
·AIR热门应用-IM篇图文介绍
·AIR是什么
·摆脱浏览器限制-AIR系列应用
·70 个AIR 程序源码下载
·air-只打开一个window窗体的方法
·AIR的一些实例聚集地
·Earth Browser 3D AIR程序
关于我们 - 版权声明 - 网站地图 - 广告服务 - 联系我们 - 友情链接 - 用户注册
©CopyRight 2006-2008, 5UFlash.COM, Inc. All Rights Reserved
鲁ICP备06034971号