flash flex里播放声音的方法

flasf cs3 里的liberty 有声音 可以是 mp3  wav 等,右键选 linkage 填入类名(我这里填BTNsound),然后将它拖到场景中,发布出来(我的命名是sound.swf),放到工程src文件夹里。在flex里新建一个 类(我的Loadsound.as)代码如下:

 package
{
 public class Loadsound
 {
  [Embed(source="Sound.swf",symbol="BTNsound")]//按钮
  public static var btnSound:Class;
 }
}

然后在 mxml 里

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
 layout="absolute" creationComplete="init();" >

private var Sbtn:Sound = new Loadsound.btnSound() as Sound;//按钮声音
private var soundVol:SoundTransform = new SoundTransform();//音量

internal function init():void{
      soundVol.volume = 1;
  }

private function onClink():void{

      Sbtn.play(0,0,soundVol);

}

<mx:Button x="129" y="397" label="Button" clink="onClink();"/>

OK!这种方式才是最简单的 最实用的!

方法一:

<mx:SoundEffect id="sound_effect" source="sound.mp3"
        panFrom="-1" panTo="1" loops="1" volumeFrom = "1" volumeTo="0.1" duration="3000" useDuration="false"/>

<mx:Button x="44" y="181" label="Button" width="103" mouseDownEffect="{sound_effect}"/>
<mx:Text x="44" y="145" text="点击鼠标,播放音效" width="129"/>

-------------------------分析------------
1 注意<mx:SoundEffect的source定义了声音的来源,和一般的Effect的target属性不同。
2 注意<mx:Button的mouseDownEffect属性

方法二:

官方文档的 在编译器里 按下 ctrl + f12 搜索sound 就有例子,这里不多说!

package { import flash.display.Sprite; import flash.net.URLRequest; import flash.media.Sound; import flash.media.SoundChannel; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.Event; import flash.events.IOErrorEvent; public class Sound_playExample3 extends Sprite { private var snd:Sound = new Sound(); private var channel:SoundChannel; private var statusTextField:TextField = new TextField(); public function Sound_playExample3(){ statusTextField.autoSize = TextFieldAutoSize.LEFT; var req:URLRequest = new URLRequest(http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3); try { snd.load(req); channel = snd.play(); } catch (err:Error) { trace(err.message); } snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); addEventListener(Event.ENTER_FRAME, enterFrameHandler); channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); this.addChild(statusTextField); } private function enterFrameHandler(event:Event):void { var loadTime:Number = snd.bytesLoaded / snd.bytesTotal; var loadPercent:uint = Math.round(100 * loadTime); var estimatedLength:int = Math.ceil(snd.length / (loadTime)); var playbackPercent:uint = Math.round(100 * (channel.position / estimatedLength)); statusTextField.text = "Sound file's size is " + snd.bytesTotal + " bytes.n" + "Bytes being loaded: " + snd.bytesLoaded + "n" + "Percentage of sound file that is loaded " + loadPercent + "%.n" + "Sound playback is " + playbackPercent + "% complete."; } private function errorHandler(errorEvent:IOErrorEvent):void { statusTextField.text = "The sound could not be loaded: " + errorEvent.text;        }          e            playing."        removeEventListener(Event.ENTER_FRAME, enterFrameHandler);        }  <!-- -->

时间: 2024-08-31 01:42:10

flash flex里播放声音的方法的相关文章

在Flash Player里播放声音的两种方法

1.建立 Sound 对象用 load() 方法加载外部的 mp3 来播放: 2.让 Sound 对象监听 sampleData 事件,这样可以播放由程序动态生成的声音,例如: 下面的示例播放简单的正弦波. var mySound:Sound = new Sound(); function sineWaveGenerator(event:SampleDataEvent):void {     for ( var c:int=0; c<8192; c++ ) {         event.dat

Flash嵌入字体的进阶方法

  关于如何在Flash应用中嵌入字体,这个话题一直都是一个焦点. 最简单的,打开Flash, 新建一个动态文本,选择字体,然后在 Embed Characters里选择或者添加需要嵌入的字符. 比较复杂的是下面两种在Flash Builder里分别针对Flex与Action Script项目的嵌入方法. Flex项目 使用css格式swf文件: css文件定义如下例 @font-face{         src:url("xxx.ttf");         font-family

Flash/Flex学习笔记(5):捕获摄像头(续)--在线抓屏并保存到客户端本地

必须有摄像头上面的演示才能正常播放. 思路 使用摄像头以及在线抓屏在上一节Flash/Flex学习笔记(2)捕获摄像头 里已经讲过了就不重复粘贴了至于在客户端保存文件Flash里用起来也很简单:直接调用 FileReference 即可另外为了减少图片大小还可能借助AS3.0的扩展库项目地址http://code.google.com/p/as3corelib/把bmp格式的位置转换成jpeg再保存   扩展 结合本文的方法再配合Flash/Flex学习笔记(4)如何打开网页及Get/Post数

Flash/Flex学习笔记(57):实用技巧

布朗运动: varnumDots:uint=50; varfriction:Number=0.9; vardots:Array; varlife:uint=0; functioninit(){ graphics.lineStyle(0,0xffffff,.5); dots=newArray(); for(vari:uint=0;i<numDots;i++){ vardot:Ball=newBall(2,0x00ff00); dot.x=Math.random()*stage.stageWidth

Flash/Flex学习笔记(30):不用startDrag和stopDrag的对象拖动

对于从Sprite类继承来的对象,要实现拖放当然是Flash/Flex学习笔记(13):对象拖动(startDrag/stopDrag) 里讲的方法最方便,但是对于不是从Sprite类继承得来的对象,这startDrag/stopDrag是不能用的,这时候只能采用最通常用做法:利用Mouse_Down,Mouse_UP,Mouse_Move事件来处理 注意:对象的Mouse_Move事件,只有当鼠标在对象上时才能被监听,如果用户鼠标移动过快,超出了对象的范围,该事件就不起作用了,所以监听Mous

flash/flex 与 FluorineFx通讯之Hello World!

Bēniaǒk兄弟的Flex与.NET互操作(六):Flex和.NET协同开发利器FluorineFx 是基于vs2008 + flex builder3的,不知道什么原因,我在vs2010 + flash builder4 上试了几次,总是不成功(也许晚上应该自我检讨下人品鸟),于是有了这一篇东东,算是对 vs2010/flash builder4环境下的一个补充吧 .net的服务端依照参照silverlight获取外部数据的另一种选择:FluorineFx 里的做法,在TestLib.cs里

Flash/Flex学习笔记(44):万有引力与粒子系统

万有引用公式: 其中G为万有引力常数   var numParticles:uint=50;//粒子总数 var G:Number=0.03;//万有引力常数 var particles:Array=new Array(numParticles); var bounce:Number=-0.4;//边界反弹系统 //初始化 function init():void { particles = new Array(); for (var i:uint = 0; i < numParticles;

flash与后台数据交换方法整理续

后台|数据 相关文章:flash与后台数据交换方法整理      个人觉得WebService的数据访问速度,仅次于Remoting,但WebService是一种通用型的接口,一般服务端技术都支持的!      WebService的优点:       1.WebService的接口支持比较广泛(Java,ASP.Net,PHP,Coldfusion-我下面举例用):       2.WebService是一个通用型的接口,所以服务端写的接口,不局限于Flash使用,其他程序也可以调用,"一举两

Flash Flex服务组件大排行

本文列出了一些Flash Flex后端支持的项目和组件.这些Flex服务组件轻量快捷,可实现很多与后台交互的功能. 不是有人说Flash Flex没有后端支持么,现在,咱列个清单出来. AMF Projects轻量级 在众多知名的后台语言上,Flash和Flex开发人员除了可以使用标准的XML/E4X/Socket去请求非序列化的外部服务数据之外,还有一个轻量快捷的通讯机制,使用AMF (Action Messaging Format),你可以访问opensource.adobe.com去找到关