`
learnmore
  • 浏览: 601813 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

flex之播放器练习

阅读更多
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init()">
    <mx:Script>
    <![CDATA[
        import mx.rpc.events.AbstractEvent;
        import mx.controls.Alert;
        import mx.events.SliderEvent;
        import flash.media.*;
        private var myTimer:Timer=new Timer(5,0);
        private var mySong:Sound;
        private var ss:SoundChannel;
        private var location:Number;
        //设定是否处于暂停状态
        private var tag:Boolean=false;
        private var playTag:Boolean=false;
        //初始化数据
        private function init():void
        {
        mlist.dataProvider=musicList.item;
        }
    private function playSound():void
    {
    if(playTag)ss.stop();
    var playItem:String="http://team.11138.net/web/nancy/wzqskfj.mp3";
    message.text="正在播放:"+mlist.selectedItem.toString();
    //如果不是暂停
    if(!tag)
    {
    var request:URLRequest=new URLRequest(playItem);
    mySong=new Sound();
    mySong.load(request);
    ss=mySong.play();
    //将播放标记设置为true,表示正在播放
    playTag=true;
    }else
    {
       ss=mySong.play(location);
       playTag=true;
    }
    //在触发器运行时,一直在广播TimerEvent.TiMER,该事件定义处理方法,使滑块移动
    myTimer.addEventListener(TimerEvent.TIMER,sliderShow);
    //启动触发器
    ss.addEventListener(Event.SOUND_COMPLETE,thisComplete);
    myTimer.start();
    }
    //处理滑块时间问题
    private function sliderShow(event:TimerEvent):void
    {
    //当前播放的位置
    var position:Number=ss.position/mySong.length;
    //定义滑块的数值,当前播放的字节数/总字节数
    playProcess.setProgress(position,playProcess.maximum);
    playProcess.label=numberFormatter.format(position*100).toString()+"%";
    if(position>0.99)playProcess.label="100%";
   
    }
    //根据是否循环选项确定在所有播放曲目完成后是否循环播放
    private function thisComplete(event:Event):void
    {
    var index:int =mlist.selectedIndex+1;
    if(go.selected)
    {
    mlist.selectedIndex=index;
    var arr:Array=musicList.item;
    //播放
    playSound();
    //如果到达最后一首
    if(index==arr.length)
    {
    //如果选择了重复播放
    if(re.selected)
    {
    mlist.selectedIndex=0;
    }
    }
    }
    }
    //停止播放音乐
    private function stopSound():void
    {
    ss.stop();
    }
    //音量控制
    private function changeVol():void
    {
    var transform:SoundTransform=ss.soundTransform;
    transform.volume=myVol.value;
    ss.soundTransform=transform;
    }
    ]]>
    </mx:Script>
    <!--音乐列表数据-->
    <mx:Model id="musicList" source="music.xml"></mx:Model>
    <!--格式化数据-->
    <mx:NumberFormatter id="numberFormatter"
            precision="2"
            rounding="up" />
<mx:Panel x="102" y="20" width="348" height="368" layout="absolute" title="mp3播放器">
<mx:ProgressBar x="10" y="33" id="playProcess" label="[0,100%]" minimum="0" maximum="1" labelPlacement="right" indeterminate="false" enabled="true" mode="manual" themeColor="#F20D7A"/>
<mx:Label x="10" y="10" text="Label" width="200" id="message"/>
<mx:Button x="10" y="69" label="play" click="playSound()"/>
<mx:Button x="83" y="69" label="stop" click="stopSound()"/>
<mx:Button x="156" y="69" label="Button"/>
<mx:Button x="229" y="69" label="Button"/>
<mx:List x="10" y="99" width="211" height="219" id="mlist"></mx:List>
<mx:CheckBox x="229" y="248" label="连续播放" id="go"/>
<mx:CheckBox x="229" y="278" label="循环播放" id="re"/>
<mx:VSlider x="245" y="99" height="141" maximum="1" minimum="0" id="myVol" mouseUp="changeVol()" labels="音量"/>
</mx:Panel>

</mx:Application>
分享到:
评论

相关推荐

    mp3播放器源代码(flex)

    这个播放器是作者在练习中编写的,虽然还有一些功能没有完善,但基础功能已经齐全,能够满足基本的音乐播放需求。 描述中提到的功能包括: 1. **播放/暂停/停止**:这是任何媒体播放器的基本操作,通过ActionScript...

    flex完全自学手册

    - 光盘内容可能包含书中示例代码、额外的练习项目和可能的Flex SDK安装包,便于读者实践操作。 5. **进阶知识**: - **Flex与 BlazeDS / LCDS**:用于在Flex应用与服务器之间进行数据交换,实现AMF(Action ...

    Flex 电子教案(PPT)

    10. **Flex的应用场景**:Flex广泛应用于企业级Web应用、数据可视化、在线多媒体播放器、游戏开发等多个领域,尤其适合需要展示复杂数据和提供高度交互体验的场景。 这个Flex电子教案(PPT)将覆盖上述知识点,并...

    基于RIA平台的数据结构多媒体课件的设计.pdf

    Flex技术是Adobe公司推出的一款RIA应用开发框架,它允许开发者使用ActionScript语言开发富互联网应用,支持通过Flash Player播放器在浏览器中运行。Flex技术的广泛支持和Flash Player的普及使得Flex成为开发RIA应用...

    AIR 入门教程和官方帮助文档

    总之,"AIR 入门教程和官方帮助文档"是一套全面的学习资源,无论你是ActionScript开发者还是Web开发者,都能从中找到适合自己的学习路径,踏上AIR应用开发之旅。请务必仔细阅读和实践,以充分利用这些资料。

    html-css-spotifyweb:esercizio boolean

    在"html-css-spotifyweb"项目中,我们可能会用到诸如`display`属性来决定元素的显示方式(如`block`、`inline-block`或`flex`),`position`属性来设置元素的定位(如`relative`、`absolute`或`fixed`),以及`grid`...

    自定义播放控件css代码

    而"css"文件则是与之对应的样式表,其中包含用于定义这些元素外观和行为的CSS规则。 以下是一些关键的CSS知识点,这些知识点可能会在该资源中被用到: 1. **选择器**:CSS选择器用于选取HTML元素。例如,`.my-...

    online-course-template:使用 HTML、CSS 的在线课程模板

    例如,可以使用`color`属性改变文本颜色,`font-family`设置字体,`margin`和`padding`调整元素间距,`display`属性用于实现流式、网格或 flex 布局,以及媒体查询(@media)实现不同设备上的适配。 在这个"online-...

    html-css-spotifyweb

    例如,使用`background-color`属性改变背景色,`font-family`调整字体,`padding`和`margin`设置内边距和外边距,以及`display: flex`或`grid`实现响应式布局。 在Spotify Web的模拟中,可能还会涉及到CSS的过渡...

    javascript30:30 天原版 JavaScript 编码挑战

    压缩包文件"javascript30-master"包含了整个课程的源代码和资源,供学习者参考和练习。通过实际操作这些项目,你可以跟随Wes Bos的步伐,逐步提升自己的JavaScript水平,最终能够独立完成复杂的Web应用开发。无论你...

Global site tag (gtag.js) - Google Analytics