サウンドと多次元配列
お遊び的な要素だけど、ゆっくりペインターでゆっくりが喋るとうざくなって良いかなと思い、考えてみた
クリックするとランダムでしゃべります。吹き出し付き。
音の扱いはじめてやった。基本、画像と一緒だね。ライブラリからリンケージで書き出すっていう。
あとは多次元配列。
//ライブラリから音声のインスタンス作るよ var yu_s:Sound=new yukkuri_s; var si_s:Sound=new siko_s; var ba_s:Sound=new baka_s; var kw_s:Sound=new kowai_s; var ka_s:Sound=new kawaii_s; var ko_s:Sound=new kosu_s; //多次元配列で音声ファイルとセリフを会わせる var myArray:Array = new Array(); myArray[0] = ["yu_s", "ゆっくりしていってね"]; myArray[1] = ["si_s", "しこってもいいのよ"]; myArray[2] = ["ba_s", "ばかなの?しぬの?"]; myArray[3] = ["ko_s", "こすってもいいのよ"]; myArray[4] = ["ka_s", "かわいくてごめんね"]; myArray[5] = ["kw_s", "おお、こわいこわい"]; //とりあえずクリックすると喋る仕様 yukkuri_mc.addEventListener(MouseEvent.CLICK,eSound); function eSound(event:MouseEvent):void { //ランダムに選択 var i:Number = Math.floor (Math.random () * 6); var str = myArray[i][1]; var snd = myArray[i][0]; //当然ながらsnd.play();とかでは正しく動かなかったのでswitch文。 //もっとスマートにやる方法ないんだろうか switch(snd){ case "yu_s": yu_s.play(); break; case "ba_s": ba_s.play(); break; case "ko_s": ko_s.play(); break; case "ka_s": ka_s.play(); break; case "kw_s": kw_s.play(); break; case "si_s": si_s.play(); break; } serif_txt.text = str; }
あ、画像は2ch全AAイラスト化計画のゆっくり霊夢を勝手に使わせて頂きました。
かなり改良の余地がある。
音が出てるときクリックしたらダブってしまうし、クリックじゃなくドラッグ(絵描いてるときに喋らす設定にしたいから…)で音出るようにもしないといけないし。
しかし、本当にこんな機能あったらウザイだけかな。ま、勉強として。