環境=Flash8,WinXPでオーサリングしています。
質問です。
外部SWF内のフレームに組み込んだイベントサウンドがなっている状態で、
_rootのフレームアクションにて
_global.bgm_sound2_start=function (){
bgm_sound2 = new Sound();
bgm_sound2.attachSound("bgm_sound2.wav");
bgm_sound2.start();
}
を記載。
_root.mc1.mc2のフレームアクションで
stopAllSound();
_global.bgm_sound2_start();
を記載。(*イベントサウンドを停止させてから、sound objectをfunction にてstart()させたい)
この場合に限らずですが、
個別にSound Objectを操作しないで
stopAllSound()を使用した場合、
stopAllSound()の記載位置にかかわらず、
スクリプト内の時間的前後が無視され
スクリプト内のどこでもすべてのサウンドがストップされます。*トップレベルfunctionのため。
フレームに組み込んだイベントサウンドを
Sound Objectに変えずに
このままの方法で意図した動作をさせるには
どうすればよいでしょうか?
どうぞ宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
#1です。
stopAllSounds(); は単に音を止めるのではなく,
その時点でのSoundインスタンスを全て削除する
という意味らしいです(私は最近知りました)。
ですから,
リンケージの識別子などで音を呼び出す場合
stopAllSounds(); 後には,
--Sound Object 生成省略--
はできません。
stopAllSounds(); は必ず使用するという原則で,
Sound Object の生成を省略したい。
ということですね。
適当な場所にムービークリップを作って,
仮にインスタンス名を「musicMC1」とでもしておきます。
その「musicMC1」の フレーム2 に音を入れておいて,
フレーム1 には stop(); を書いておきます。
音の「同期」は「スタート」あたりが良いと思います。
1
a
□レイヤー2 ・・・|○ [] |
□レイヤー1 ・・・|○|○|
↑音波みたいな物が見える
そして,
stopAllSounds();
musicMC1.gotoAndStop(2);
で音がなると思います。
パスは省略していますが,「musicMC1」の置き場所によって,
_root.musicMC1.gotoAndStop(2); などにしてください。
音を消すときは,
stopAllSounds();
musicMC1.gotoAndStop(1);
です。
stopAllSounds(); を使った場合,Sound Object を再生成するか,
上のように再びタイムラインを動かして,音を鳴らすしかないと思います。
--- 追伸の件 ------
#1での追伸に対するお返事ありがとうございました。
また,
試されていないのではないかという疑惑をいだいてしまい,申し訳ございません。
ムービークリップ内のテキスト入力ですか。
そこまでは検証してみませんでした。
おかげさまで,疑問が晴れてすっきりしました。
お返事有難う御座います。
stopAllSounds()は、そのすぐ後の行に
sound Objectを生成しても、それすら削除してしまうみたいです。
でも、これでスッキリしました。
有難う御座います。
教えていただいた方法も正常に動作致しました。
MCを増やさずにスクリプトのみでと考えていましたが、この方法以外選択肢がなさそうですね。
動作検証などをせずに質問する方が多いですから
疑われても仕方の無いことだと思いました。
また、今回もご迷惑をかけてしまいましたが、
質問する側がきちんと詳細を明記しない事が
原因だと考えていますので、反省し以後気をつけますので、どうぞお許し下さいませ。
この度もご教授のおかげですべて解決出来ました。
本当に有難う御座いました。
No.1
- 回答日時:
補足要求 と 追伸 です。
まず,補足要求。
>> フレームに組み込んだイベントサウンドを
>> Sound Objectに変えずに
>> このままの方法で意図した動作をさせるには
>> どうすればよいでしょうか?
この4行の上まではなんとなくどんな状態か理解できたのですが,
この4行が理解できません。
>> Sound Objectに変えずに
とはどういう状態なのでしょうか。
また,
>> このままの方法で意図した動作をさせるには
意図した動作がどんな動作なのかがわかりません。
意図した動作とはどういう動作なのでしょうか。
私は Sound 系にあまり明るくないので,答えられる自信はありませんが,
答える以前に,4行のご質問の意味がよくわかりません。
また,補足説明していただくと,他の方も答えやすくなるとは思います。
次に,追伸。
前々回のこのカテゴリでのご質問,
質問:MCを2つ以上ドラッグする方法
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1937529 …
↑教えて!goo ↓OKWave (同じです)
http://okwave.jp/kotaeru.php3?q=1937529&rev=1
(#1と#2を上下逆にしています)
#1の方の書いてくださっているスクリプトの最後の行。
//表示を更新
updateAfterEvent();
この1行を見落とされていませんか?
その補足に,
>> マウスポインタがそのつどずれ、ユーザーにストレスを
>> 与えてしまいます。
と書かれていますが,
私が #1 の方のスクリプトを実際に試してみましたところ,
startDrag を使うより,もっとスムーズにカーソルが動きましたよ。
私は,#2で,#1の方のおっしゃることを前提に,それを補足しただけです。
テキスト入力 に関しては,どっちもどっち。
startDrag を使っても,使わなくても,しにくいことは確かですが,
一度,#1 の方の方法を実際に試されることをお薦めします。
この回答への補足
お返事有難う御座います。
サウンドは、大きく分けて2つの処理方法が御座います。
1、Sound Objectを生成して、サウンドを操作する方法。
2、ライブラリなどに読み込んだりしたサウンドを
フレームにイベントサウンドやストリーミングサウンドとしてあらかじめ組み込む方法です。
2を1に変えて(変更して)という意味でした。
わかりにくく申し訳御座いません。
意図した動作とは、*でも記載しましたが
(*イベントサウンドを停止させてから、sound objectをfunction にてstart()させたい)
がさせたい動作です。
これもわかりにくくて申し訳御座いませんでした。
もっと詳細に言いますと、
1、外部SWFのフレームイベントサウンドが鳴る
2、_rootのボタンなどのアクションによって、_rootのfunctionが呼びだされ、外部SWFのフレームイベントサウンドを止めてすぐに_rootのsound objectで生成をしてstart()し、違う音を鳴らす。
stopAllSound();
--Sound Object 生成省略--
my_sound.start();
としても、my_sound.start()は鳴りません。
いずれも、誰が見ても解るきちんとした書式で書かないといけなかったなと反省しております。
ご指摘有難う御座いました。
以前の#1の方の補足ですが、
この事例に限らずですが、実際にすべて試して検証しております。
また、updateAfterEvent()に限らず、
頂いた貴重なスクリプトは、動作しない場合でも
どこが原因でどこを何に換えると正常に動作するかも、動作検証させて頂いております。
テキスト入力では、完全に入力ができませんでした。
*startDrag()がないため。
*startDrag()追加で正常に入力できました。
*MC内のさらに中にTextfieldを作っているためstartDrag()が必要なのかもしれません。
やはり、昔からまったくそっくりそのまま
同じスクリプトで議論がされていますが、
そのままストレス無く使えて~というほど
万能ではないと言うことは明らかだと思われます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- その他(法律) 住宅街の屋外でBGMを流してる店舗へのお願い文について 1 2022/06/07 08:09
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Excel(エクセル) ExcelのVBAコードについて教えてください。 1 2022/06/20 09:22
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- Visual Basic(VBA) ローマ字、ハイフン付きの並び替え ローマ字抽出方法 Excelマクロ 4 2022/04/01 14:10
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 1 2022/06/18 21:20
- その他(音楽・ダンス・舞台芸能) この動画のBGMがダウンロードできるサイトと曲名を知りたいです 2 2023/06/07 06:44
- 画像編集・動画編集・音楽編集 Windowsに付属しているビデオエディター。BGMを追加する方法は? 1 2022/06/26 08:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プリローダーで、画像を下から...
-
外部JPG読み込みでのLoading
-
Flash4でloadMovieの完了を知る...
-
エクセルVBA読み込みアドレスの...
-
cookieの保存について
-
スライドプレゼンテーション機...
-
巻き戻しボタンを作りたいので...
-
Flashゲームのセーブ機能の作り方
-
suzuka rollOverで画像が徐々...
-
5フレーム目で3秒止めて7フレー...
-
シーケンス番号の初期値
-
Kiss DN AFフレームを非表示に...
-
iframeはSEO的に不利になる?
-
VB6のスクロールバー付きフレー...
-
WEBブラウザの重複起動の禁止
-
メディアプレーヤーで再生する...
-
グリーティングカード
-
処理の速い当たり判定について[...
-
VBSでHTMLソースの取得方法で
-
Excel VBA SetFocus
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ActionScript 2.0 再生・停止
-
ActionScriptで決めた時間だけ...
-
Flash Lite 1.1(KDDI)で日数カ...
-
ムービークリップの位置と角度...
-
外部テキスト読み込み、横スク...
-
フレーム内に移動したい
-
ドロップフレームの計算をエク...
-
Access2010でサブフォームのフ...
-
phpで音を鳴らす
-
フレーム内のオプションボタン...
-
【C#】wavファイルの複数同時再生
-
VB6のスクロールバー付きフレー...
-
C#でDLLファイル読み込みを行う...
-
VBで動的に作成したパネルの上...
-
cisco catalystのトラブルシュ...
-
車の運転時のメガネ 縁なし(...
-
Flashで右クリックメニューにつ...
-
WEBブラウザの重複起動の禁止
-
WebBrowserでgoogle検索するには?
-
URLを隠す、または別アドレスな...
おすすめ情報