2016-10-13 00:16:48 点击量:14 标签: 收藏本文
[AS3]as3下写的声音类文件示例
- package com.gchen{
- import flash.media.Sound;
- import flash.media.SoundChannel;
- import flash.media.SoundTransform;
- import flash.utils.getDefinitionByName;
- import flash.utils.Timer;
- import flash.events.Event;
- import flash.events.TimerEvent;
- public class SubSound extends Sound{
- private var _obj:Object={}
- private var oldPlay:String="";
- private var timer:Timer;
- private var timerChannel:Timer;
- private var _end:int;
- public function SubSound() {
- super();
- timer=new Timer(100);
- timerChannel=new Timer(100,20)
- timer.addEventListener(TimerEvent.TIMER,timerHandle);
- timerChannel.addEventListener(TimerEvent.TIMER,timerChannelHandle);
- }
- public function playSound(name:String,start:int=0,end:int=0,loops:int=0){
- if(name=="") return;
- var channel:SoundChannel=new SoundChannel();
- var _sound:Sound=getSound(name);
- channel=_sound.play(start);
- oldPlay=name;
- if(oldPlay!=""){
- timerChannel.reset();
- timerChannel.start();
- }
- if(end!=0){
- _end=end;
- timer.start();
- }
- _obj[name]=channel;
- }
- public function get obj():Object{
- return _obj;
- }
- private function timerHandle(e:TimerEvent):void{
- if(_obj[oldPlay].position>_end){
- _obj[oldPlay].stop()
- timer.reset()
- }
- }
- private function timerChannelHandle(e:TimerEvent):void{
- for(var i in _obj) {
- if(i!=oldPlay){
- var value:Number = _obj[i].soundTransform.volume
- if(value<0){
- _obj[i].stop();
- }
- setVolume(_obj[i],value-.1)
- }
- }
- }
- public function setVolume(channel:SoundChannel,volume:Number):void {
- var transform:SoundTransform = channel.soundTransform;
- transform.volume = volume;
- channel.soundTransform = transform;
- }
- private function getSound(name:String):*{
- var _c:*=getDefinitionByName(name) as Class
- return new _c();
- }
- }
- }
我们是一家提供综合软件外包与弱电工程服务的技术公司。
业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。
公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室