トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     FLASH Cookieで音量を制御するには
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
Åê¹ÆNo.43557
投稿日時: 2009-9-30 23:50
FLASH Cookieで音量を制御するには
当方FLASHに関しては素人なのですが、他に技術者がおらず、編集作業をしなければならなくなりました。
勉強してはいるのですが実務に追いつかない状態です。
すみませんが、知恵を貸してください。お願いします。

音楽の流れているページを訪れたユーザーを困らせないように、
一度「SoundOFF」を設定したら音楽を消したままにしたいです。
現状だとリロードすると音楽が始まってしまいます。
「usrCookie」や「SharedObject」を使用することになるかと
思うのですが、どのように修正したらいいでしょうか?

/*------------------------
sound
------------------------*/
var soundPlayFlg:Boolean = false;
var bgm_sound:Sound = new Sound();
bgm_sound.setVolume( 0 );
bgm_sound.attachSound( "sound" );

// サウンドボタン動作制御
soundBtn.btn.onRelease =
soundBtn.btn.onReleaseOutside = function ():Void
{
soundFade( soundPlayFlg );
}

//
function soundFade( flg:Boolean ):Void
{
if ( flg )
{
soundBtn.gotoAndStop( "soundOff" );
//
soundBtn.onEnterFrame = function():Void
{
var vol:Number = bgm_sound.getVolume();
if ( vol > 1 )
{
vol *= 0.9;
bgm_sound.setVolume( vol );
}
else
{
bgm_sound.setVolume( 0 );
bgm_sound.stop();
soundPlayFlg = false;
delete soundBtn.onEnterFrame;
}
}
}
else
{
bgm_sound.start();
soundBtn.gotoAndStop( "soundOn" );
//
soundBtn.onEnterFrame = function():Void
{
var vol:Number = bgm_sound.getVolume();
if ( vol < 80 )
{
vol += 2;
bgm_sound.setVolume( vol );
}
else
{
bgm_sound.setVolume( 80 );
soundPlayFlg = true;
delete soundBtn.onEnterFrame;
}
}
}
}

//--
soundFade( soundPlayFlg );

bgm_sound.onSoundComplete = function():Void
{
bgm_sound.start();
}
ひろゆき
Åê¹ÆNo.43563
投稿日時: 2009-10-1 14:25
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: FLASH Cookieで音量を制御するには
アカウント編集」で、編集環境は書いておきましょう
プロフィール・使用環境記入のお願い
#その他の欄に記入すれば、使用環境として表示されるはずです。

まず、Flashに、「Flash Cookie」や「usrCookie」というものはありません。
そのような呼び方をされているだけです。

SharedObject」でフォーラム内を検索してみましょう
# 検索キーワードは半角スペースで区切りましょう。
#「すべて表示」で、たくさん表示されます。



どのタイミングで、「SoundOFF」を設定するのか、不明ですが。

こんな感じでしょうか。
var so:SharedObject = SharedObject.getLocal("soundCookie");
var soundPlayFlg:Boolean = so.data.flg;

var bgm_sound:Sound = new Sound();
bgm_sound.setVolume(0);
bgm_sound.attachSound("sound");

soundBtn.btn.onRelease = soundBtn.btn.onReleaseOutside = function():Void {
	soundFade(soundPlayFlg);
};

function soundFade(flg:Boolean):Void {
	if (flg) {
		soundBtn.gotoAndStop("soundOff");
		soundBtn.onEnterFrame = function():Void {
			var vol:Number = bgm_sound.getVolume();
			if (vol > 1) {
				vol *= 0.9;
				bgm_sound.setVolume(vol);
			} else {
				bgm_sound.setVolume(0);
				bgm_sound.stop();
				soundPlayFlg = false;
				so.data.flg = soundPlayFlg;
				so.flush();
				delete this.onEnterFrame;
			}
		};
	} else {
		bgm_sound.start();
		soundBtn.gotoAndStop("soundOn");
		soundBtn.onEnterFrame = function():Void {
			var vol:Number = bgm_sound.getVolume();
			if (vol < 80) {
				vol += 2;
				bgm_sound.setVolume(vol);
			} else {
				bgm_sound.setVolume(80);
				soundPlayFlg = true;
				so.data.flg = soundPlayFlg;
				so.flush();
				delete this.onEnterFrame;
			}
		};
	}
}
soundFade(soundPlayFlg);

bgm_sound.onSoundComplete = function():Void {
	bgm_sound.start();
};


----------------
質問する際は、回答者に具体的な情報を与えてください。

ゲスト
Åê¹ÆNo.43571
投稿日時: 2009-10-1 21:37
Re: FLASH Cookieで音量を制御するには
ひろゆき様

ご返信、本当にありがとうございます。
おかげさまで大変助かりました。

使用環境の件、失礼しました。
WinXPのFLASH CS4です。

別に「Soundoff」というフラグがあって、
そちらで設定していただいた「so.data.flg」を元に
自分なりにif文を組んだら、
「初回訪問は音楽を鳴らして二度目以降は音楽ストップ」
という処理が出来ました。

if (so.data.flg == undefined) {
so.data.flg = 1;
} else if (so.data.flg == 1) {
stop();
} else {
stop();
}

ご親切にありがとうございました!
ゲスト
Åê¹ÆNo.43608
投稿日時: 2009-10-4 18:31
Re: FLASH Cookieで音量を制御するには
すみません、前回お礼を書いたのですが何度も繰り返しているうちに動作がおかしくなってしまいました……。
いただいたアドバイス通りに動かすと「二度目はオフになるも三度目以降はオンのまま」になってしまいます。
どうやら「flg」という値で判定をしているようなのですが……。

別に「soundoff」「soundon」というインスタンス名があり、
そちらには「stop();」とだけ書かれています。

「soundoff」のインスタンスに
var so:SharedObject = SharedObject.getLocal("soundCookie");

if( sound_so.data.flg == false ){//収納したデータが存在するか?
// 2回目以降の処理
sound_so.data.flg === false;
}else{
sound_so.data.flg == undefined;//データを収納
// 1回目の処理
sound_so.data.flg === true;
}

stop();
と書いてみても、一度目はオフになるのですがそれ以降は無視されてしまうようです。

色々調べてみたのですが、うまく動作しません。
すみませんが、アドバイスをいただけませんでしょうか……。

引用:

/*------------------------
sound
------------------------*/
var sound_so:SharedObject = SharedObject.getLocal("soundCookie");
var soundPlayFlg:Boolean = sound_so.data.flg;

var bgm_sound:Sound = new Sound();
bgm_sound.setVolume(0);
bgm_sound.attachSound("sound");

soundBtn.btn.onRelease = soundBtn.btn.onReleaseOutside = function():Void {
soundFade(soundPlayFlg);
};

function soundFade(flg:Boolean):Void {
if (flg) {
soundBtn.gotoAndStop("soundOff");
soundBtn.onEnterFrame = function():Void {
var vol:Number = bgm_sound.getVolume();
if (vol > 1) {
vol *= 0.9;
bgm_sound.setVolume(vol);
} else {
bgm_sound.setVolume(0);
bgm_sound.stop();
soundPlayFlg = false;
sound_so.data.flg = soundPlayFlg;
sound_so.flush();
delete this.onEnterFrame;
}
};
} else {
bgm_sound.start();
soundBtn.gotoAndStop("soundOn");
soundBtn.onEnterFrame = function():Void {
var vol:Number = bgm_sound.getVolume();
if (vol < 80) {
vol += 2;
bgm_sound.setVolume(vol);
} else {
bgm_sound.setVolume(80);
soundPlayFlg = true;
sound_so.data.flg = soundPlayFlg;
sound_so.flush();
delete this.onEnterFrame;
}
};
}
}
soundFade(soundPlayFlg);

bgm_sound.onSoundComplete = function():Void {
bgm_sound.start();
};
ひろゆき
Åê¹ÆNo.43609
投稿日時: 2009-10-4 19:53
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: FLASH Cookieで音量を制御するには
引用:
quinnieさんは書きました:
すみません、前回お礼を書いたのですが何度も繰り返しているうちに動作がおかしくなってしまいました……。

よく分からずに、ぐちゃぐちゃにする前に、
ある程度期待する動きをしたflaファイルについては、
別途複製してストックしておくとか、された方がよいのでは?

また、おかしくなったものの現物を確認できませんし、
事情について、理解はいたしますが、
ここは、丸投げの場ではないので、せめて、
第三者が同じものを作成できるように説明する必要があるでしょう。

引用:
「soundoff」のインスタンスに
var so:SharedObject = SharedObject.getLocal("soundCookie");

if( sound_so.data.flg == false ){//収納したデータが存在するか?
// 2回目以降の処理
sound_so.data.flg === false;
}else{
sound_so.data.flg == undefined;//データを収納
// 1回目の処理
sound_so.data.flg === true;
}

stop();

このスクリプトも、どこに記述されたのか不明ですし。


----------------
質問する際は、回答者に具体的な情報を与えてください。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops