看板 Flash 關於我們 聯絡資訊
用 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)
hirabbitt:感謝 研究中 10/15 12:57
hirabbitt:編譯的版本要在哪邊調啊? 我的是flash cs3 10/15 14:03
cjcat2266:er...你用CS3的話就沒輒了 10/15 17:34
ybite:檔案 > 發佈設定,按「Flash」頁籤,版本選Flash Player 10 10/15 17:34
cjcat2266:要用CS4或者Flex SDK + 版本設為FP10 10/15 17:34
ybite:等等,對,CS3只能編到Flash 9 Orz;CS4才能編到Flash 10 囧 10/15 17:35
osanaosana:這是說...CS3過時了嗎?...看來要準備換版了 10/15 17:42
cjcat2266:CS3並沒有過時...只是有些功能FP10才有而已 10/15 17:58
cjcat2266:我平常開發AS還是開發FP9的project 10/15 17:59
hirabbitt:所以說f9之前其實是沒辦法做到發聲的嘍? 10/16 17:43
cjcat2266:是的 10/16 17:49
hirabbitt:這樣啊 謝謝你 10/16 20:51