作者ybite (小犬)
看板Flash
标题Re: [问题] 没有声音档 可以发出声音吗?
时间Thu Oct 15 12:37:43 2009
用 Flex SDK 检查过了,找出了一些问题
* 首先,请在编译 SWF 时
将版本设成 Flash Player 10
这应该是造成编译错误的主因
(也因此要小心,在你使用你的成果 SWF 在 HTML 页面时
要用类似 SWFObject 的函式库来检查 Flash 版本)
* 再来 Flash Player 10 正式版又改了一堆东西 Orz
※ 引述《hirabbitt (兔子)》之铭言:
: 原始档来了
: 几乎都照着影片上的写
: sd.as档
: package{
: import flash.display.*;
: import flash.events.*;
: import flash.media.*;
: public class sd extends Sprite{
: private var s:Sound;
: private var n:Number=0;
: public function sd():void{
: s=new sound();
: s.addEventListener(Event.SAMPLES_CALLBACK, onCallback);
↑改 SampleDataEvent.SAMPLE_DATA
: s.play();
: }
: private function onCallback(e:SampleDataEvent):void{
: n = 440;
: s.samplesCallbackData.writeFloat();
: s.samplesCallbackData.writeFloat();
↑改e.data.writeFloat();
: }
: }
: }
: RD.fla档
: 其中有个b1的按钮
: import sd;
: root.addEventListener(MouseEvent.CLICK,sd.sd);
: b1.addEventListener(MouseEvent.CLICK,sd.sd());
如果你需要用按钮触动的方式的话,我会觉得:
* sd 应该不需要 extends Sprite(因为你不需要一块Sprite空间来放吧?)
* 你会需要有方法控制音效「停下来」,而应该是这样作
首先在 sd 加上 private var channel:SoundChannel;
然後 s.play(); 改成 channel = s.play();
当你想要停下来(ex: setTimeout一段时间)时就呼叫 channel.stop();
参考的例子
http://bit.ly/2T0XaT (其实我也是看了手册才知道的 XD)
而当你需要 Sound 的时候我会这样写:
b1.addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void {
var mysnd:sd = new sd(); // 这样就会发出你想要的声音了
}
);
Function 可以分出来放,我只是 jQuery 中毒了而已 囧
: 编译RD.fla档的错误讯息
: sd.as,字行14 1046: 找不到 Type,或它不是编译时期常数:SampleDataEvent。
: 这样...谢谢ˊˋ
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.84
※ 编辑: ybite 来自: 140.112.30.84 (10/15 12:43)
1F:推 hirabbitt:感谢 研究中 10/15 12:57
2F:推 hirabbitt:编译的版本要在哪边调啊? 我的是flash cs3 10/15 14:03
3F:推 cjcat2266:er...你用CS3的话就没辄了 10/15 17:34
4F:→ ybite:档案 > 发布设定,按「Flash」页签,版本选Flash Player 10 10/15 17:34
5F:→ cjcat2266:要用CS4或者Flex SDK + 版本设为FP10 10/15 17:34
6F:→ ybite:等等,对,CS3只能编到Flash 9 Orz;CS4才能编到Flash 10 囧 10/15 17:35
7F:推 osanaosana:这是说...CS3过时了吗?...看来要准备换版了 10/15 17:42
8F:推 cjcat2266:CS3并没有过时...只是有些功能FP10才有而已 10/15 17:58
9F:→ cjcat2266:我平常开发AS还是开发FP9的project 10/15 17:59
10F:推 hirabbitt:所以说f9之前其实是没办法做到发声的喽? 10/16 17:43
11F:推 cjcat2266:是的 10/16 17:49
12F:→ hirabbitt:这样啊 谢谢你 10/16 20:51