Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.04.2010, 02:37
AlexMakienko вне форума Посмотреть профиль Отправить личное сообщение для AlexMakienko Найти все сообщения от AlexMakienko
  № 1  
Ответить с цитированием
AlexMakienko
[+3 02.01.10]
 
Аватар для AlexMakienko

Регистрация: Nov 2009
Сообщений: 67
По умолчанию AS3- как погасить музыку при уходе с swf ?

Братцы я в AS3 не очень то.
На swf файле, формирующем основное окно сайта, играет хор. музыка, которую не хочется отключать. При переключении на другую html стр. ( которая стоит в одной папке с этим swf файлом) музыка продолжает играть как фон.

Желательно ее погасить или откл. совсем.
Собственно часть скрипта для музыки на этом swf файле:

Код:
// Toggle background music

var musicState:Boolean = true;
var musicPref:Boolean = true;
function toggleMusic(val) {
	if (val == true) {
		footer_mc.musicControls_mc.gotoAndStop(2);
		my_sound.stop();
		musicState = false;
		musicPref = false
	} else {
		footer_mc.musicControls_mc.gotoAndStop(1);
		my_sound.onLoad = function(success:Boolean) {
			if (success) {
				my_sound.start(0,999);
				my_sound.setVolume(100);
				status_txt.text = "Sound loaded";
			} else {
				status_txt.text = "Sound failed";
			}
		};
		my_sound.loadSound(myMusic, false);
		musicState = true;
		musicPref = true;
	}
}

function fadeOutMusic() {
	musicState = false;
	footer_mc.musicControls_mc.gotoAndStop(2);
	currentVol = my_sound.getVolume();
	footer_mc.musicControls_mc.onEnterFrame = function() {
		if (currentVol>0){
			currentVol-=2;
			my_sound.setVolume(currentVol);
		} else {
			my_sound.setVolume(0);
			delete footer_mc.musicControls_mc.onEnterFrame;
		}
	}
}
function fadeInMusic(){
	if (musicPref == true) {
		musicState = true;
		footer_mc.musicControls_mc.gotoAndStop(1);
		currentVol = my_sound.getVolume();
		footer_mc.musicControls_mc.onEnterFrame = function() {
			if (currentVol<100) {
				currentVol+=2;
				my_sound.setVolume(currentVol);
			} else {
				my_sound.setVolume(100);
				delete footer_mc.musicControls_mc.onEnterFrame;
			}
		}
	}
}


footer_mc.musicControls_mc.onRelease = function() {
	if (musicState == true) {
		toggleMusic(true);
	} else {
		toggleMusic(false);
	}
};
footer_mc.musicControls_mc.onRollOver = function() {
	this._alpha = 80;
};
footer_mc.musicControls_mc.onRollOut = footer_mc.musicControls_mc.onReleaseOutside = function() {
	this._alpha = 100;
};
Выхода по URL нет. Уход на новую html стр. через команду в menu.XML
Подскажите, пожалуйста, что тут можно сделать ?


Последний раз редактировалось AlexMakienko; 07.04.2010 в 02:43.
Старый 07.04.2010, 03:17
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 2  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
при уходе на что-то либо другое окромя флешки, она само собой потеряет фокус, можно попробовать использовать это интересное свойство.
__________________
Гоночка

Старый 07.04.2010, 04:05
AlexMakienko вне форума Посмотреть профиль Отправить личное сообщение для AlexMakienko Найти все сообщения от AlexMakienko
  № 3  
Ответить с цитированием
AlexMakienko
[+3 02.01.10]
 
Аватар для AlexMakienko

Регистрация: Nov 2009
Сообщений: 67
Alex Lexcuk Даже если на новой html стоит своя новая флешка ??
Что для этого лучше сделать ?

Не уверен, но может как то компиллировать это??

Код:
playpause_mc.onRelease = function() {
	if (playState == true) {
		mySong.stop();
		playState = false;
		playpause_mc.gotoAndStop(1);
	} else {
		mySong.start(mySong.position/1000);
		playState = true;
		playpause_mc.gotoAndStop(2);
	}
};


Последний раз редактировалось AlexMakienko; 07.04.2010 в 04:08.
Старый 07.04.2010, 17:21
lelka вне форума Посмотреть профиль Отправить личное сообщение для lelka Найти все сообщения от lelka
  № 4  
Ответить с цитированием
lelka
 
Аватар для lelka

Регистрация: Aug 2009
Сообщений: 54
для того, чтобы плавно погасить музыку, используй лучше TweenMax. Если я правильно понимаю, тебе надо гасить музыку, если юзер переключился на другую страничку. используй событие DEACTIVATE. пусть его stage слушает. Только флешку надо внедрять с помощью swfobject.

Старый 07.04.2010, 20:55
AlexMakienko вне форума Посмотреть профиль Отправить личное сообщение для AlexMakienko Найти все сообщения от AlexMakienko
  № 5  
Ответить с цитированием
AlexMakienko
[+3 02.01.10]
 
Аватар для AlexMakienko

Регистрация: Nov 2009
Сообщений: 67
Lelka Ты правильно понимаешь. Подскажи где можно посмотреть о предложенном.
Deactivate это вводится в Action Script новой флешки на html стр. куда уходит Юзер ??

Старый 07.04.2010, 21:34
lelka вне форума Посмотреть профиль Отправить личное сообщение для lelka Найти все сообщения от lelka
  № 6  
Ответить с цитированием
lelka
 
Аватар для lelka

Регистрация: Aug 2009
Сообщений: 54
Код AS3:
объявляешь переменные:
private var _channel : SoundChannel;
private var _isMusicPlay:Boolean = true;// флаг, музыку выключили или нет
private var _currentVolume:Number = 1;//текущая громкость
в main-классе в конструкторе пишешь 
var sound : Sound = new Sound(new URLRequest("music.mp3"));
_channel = _sound.play(0, 999);
stage.addEventListener(Event.DEACTIVATE, setMusicHandler);
stage.addEventListener(Event.ACTIVATE, setMusicHandler);
и объявляешь функцию 
 public function setMusicHandler(event : Event) : void
		  {
 
			var volume : Number = 0;
 
 
                       if(event.type==Event.ACTIVATE)
                      {
                                 if(_isMusicPlay)
				{
				volume = _currentVolume;	
				}
                      }
			TweenMax.to(_channel, 0.5, {volume:volume});
		}
вроде так... если что, могу готовый класс кинуть.


Этот код пишется в первой флешке. В которой музыка редактируется.

Старый 08.04.2010, 04:12
AlexMakienko вне форума Посмотреть профиль Отправить личное сообщение для AlexMakienko Найти все сообщения от AlexMakienko
  № 7  
Ответить с цитированием
AlexMakienko
[+3 02.01.10]
 
Аватар для AlexMakienko

Регистрация: Nov 2009
Сообщений: 67
lelka Спасибо большое.
Попробую и отпишу. Пока

Добавлено через 14 часов 48 минут
lelka У меня не получается !

Может действительно сделаешь класс ?
Собственно весь скрипт о музыке приведен в верхнем окне.
Пожалуйста

Добавлено через 16 часов 44 минуты
Братцы в конце концов разобрался !

Собственно в основной (обычно main.swf) флешке всего XML сайта, формирующей исходный вид, меню сайта, переключений и музыки на background, ГАСИТЬ музыку при передаче управления на внешние html стр. надо не в блоке команд управляющих музыкой , (который я приводил выше), а в модуле управления по URL передачи команд по связям - Link (основным mainlink или вспомогательным-sublink).

В моем случае простое введение
Код:
 _root.fadeOutMusic();
в классе команд управления по URL

Код:
// Load module and module data (main links)

function loadModule(id) {
	if (linkModule[id] == "url") {
		getURL(linkData[id], "_blank");
		
		_root.fadeOutMusic();

      } 
	else {
		if (backgroundMusic == "yes" && musicPref == true) {
			if (currentVol < 100) {
		     fadeInMusic();
			
			}
	}

		clearInterval(_global.intervalID);
		var hideContent:Tween = new Tween(moduleContainer_mc, "_alpha", None.easeOut, moduleContainer_mc._alpha, 0, 0.5, true);
		hideContent.onMotionFinished = function() {
			moduleData = linkData[id];
			loadMovie(linkModule[id], moduleContainer_mc);
			var showContent:Tween = new Tween(moduleContainer_mc, "_alpha", None.easeOut, 0, 100, 0.3, true);
		
		};	
	}
}
При этом группу else { ....... лучше убрать (хотя и с ней работает).

Прав был Juice_Green наша первоначальная дискуссия по XML здесь
http://www.flasher.ru/forum/showthread.php?t=138305

Все замечательно стало работать. При уходе на внешнюю стр. по URL Звук плавно гасится открывая дорогу звуковым делам на новой html странице.
Большое спасибо Juice_Green, Alexcuk и конечно Lelca за интересную и важную подсказку по AS3.
Она мне помогла в другом .swf


Последний раз редактировалось AlexMakienko; 08.04.2010 в 21:02.
Старый 10.04.2010, 02:13
lelka вне форума Посмотреть профиль Отправить личное сообщение для lelka Найти все сообщения от lelka
  № 8  
Ответить с цитированием
lelka
 
Аватар для lelka

Регистрация: Aug 2009
Сообщений: 54
Класс, я так понимаю, уже не нужен?

Старый 10.04.2010, 14:20
AlexMakienko вне форума Посмотреть профиль Отправить личное сообщение для AlexMakienko Найти все сообщения от AlexMakienko
  № 9  
Ответить с цитированием
AlexMakienko
[+3 02.01.10]
 
Аватар для AlexMakienko

Регистрация: Nov 2009
Сообщений: 67
lelka Очень нужен.
Сделай пожалуйста. Потому что, есть еще два XML варианта сайта, там в формирующих основной облик Флешках при уходе не по URL, а при уходе на др. флешки прием описанный выше не срабатывает. Я по AS3 не очень то.

Кстати подскажи пожалуйста.
Что лучше использовать для работы с AS3 Adobe CS3 ???
Я так понимаю он воспринимает и все на AS2 ??
У меня классно работает Flash8 . Там AS2. Может к нему плагины есть ??

Спасибо


Последний раз редактировалось AlexMakienko; 10.04.2010 в 14:33.
Старый 10.04.2010, 14:55
lelka вне форума Посмотреть профиль Отправить личное сообщение для lelka Найти все сообщения от lelka
  № 10  
Ответить с цитированием
lelka
 
Аватар для lelka

Регистрация: Aug 2009
Сообщений: 54
Если по AS3 не очень, то используй CS3-4.
Да
Советую перейти хотя бы на CS3. (через 2 дня уже CS5 выйдет ) про плагины ничего не знаю, но наврядли.
ссылка - http://*****************/files/tccbfziej

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:10.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:10.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.