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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.09.2009, 19:45
Mazai вне форума Посмотреть профиль Отправить личное сообщение для Mazai Найти все сообщения от Mazai
  № 1  
Ответить с цитированием
Mazai

Регистрация: Sep 2009
Сообщений: 25
По умолчанию управление звуком через внука

Добрый день, сайт на флэше делаю впервые, на нем собственно и изучаю action Script 3
Столкнулся сейчас с проблемой, решить которую самостоятельно неполучается никак.
Суть такова. Грубо говоря есть страница на которой включена фоновая музыка

Код AS3:
var backSound:Sound = new Sound(sound1);
 
var sound1:URLRequest = new URLRequest("./music/back/Sound_1.mp3");
backSound.load(sound1);
var playBack:Boolean=false;
 
var controller2:SoundChannel;
controller2=backSound.play(0,int.MAX_VALUE);
 
musicOn.buttonMode=true;
musicOff.buttonMode=true;
 
 
musicOn.addEventListener(MouseEvent.CLICK, playBackSound);
musicOff.addEventListener(MouseEvent.CLICK, stopBackSound);
 
function playBackSound (e:MouseEvent):void
{
	controller2=backSound.play();
	playBack=true;
}
 
function stopBackSound (e:MouseEvent):void
{
	controller2.stop();
	playBack=false;
}
и у этой страницы есть дети, даже внуки.
Дело в том что у пары внуков есть видео и аудио проигрыватели, при включении которых фоновая музыка должна замолкать.
Как обратится к controller2 из внука не имею понятия
пожалуйста подскажите...

Спасибо!


Последний раз редактировалось iNils; 07.09.2009 в 20:05.
Старый 07.09.2009, 19:51
Dante вне форума Посмотреть профиль Отправить личное сообщение для Dante Найти все сообщения от Dante
  № 2  
Ответить с цитированием
Dante

Регистрация: Feb 2009
Сообщений: 20
подпишись на события от детей и внуков

Старый 07.09.2009, 20:03
Mazai вне форума Посмотреть профиль Отправить личное сообщение для Mazai Найти все сообщения от Mazai
  № 3  
Ответить с цитированием
Mazai

Регистрация: Sep 2009
Сообщений: 25
Подскажи пожалиста как ?
Просто я весьма и совсем начинающий
очевидно в внуке надо прописать что то типа
import flash. ???????????;

Старый 07.09.2009, 20:05
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Mazai, для оформления своего кода, надо использовать теги [code][/code].
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 07.09.2009, 20:14
Dante вне форума Посмотреть профиль Отправить личное сообщение для Dante Найти все сообщения от Dante
  № 5  
Ответить с цитированием
Dante

Регистрация: Feb 2009
Сообщений: 20
в родителе подпишись на события от детей как ты подписался на события от кнопок либо подпишись на события кнопок детей,в детях нечего менять не стоит

Старый 07.09.2009, 20:26
Mazai вне форума Посмотреть профиль Отправить личное сообщение для Mazai Найти все сообщения от Mazai
  № 6  
Ответить с цитированием
Mazai

Регистрация: Sep 2009
Сообщений: 25
до подписи прямых событий на кнопки внуков то я бы и сам дошел,
Но дело в том что в во внуках порядка 45 кнопок которые вызывают различные аудио дорожки. И на каждые 15 трэков есть одна команда запуска воспроизведения мелодии
именно в этой команде я и хотел сослатся на controller2 и вырубить его непосредственно перед запуском трэка внука...
вот маленький эпизод устройства внука

Код AS3:
import flash.events.Event; 
import flash.media.Sound; 
import flash.net.URLRequest;
 
var sound14:URLRequest = new URLRequest("./music/krugovert/prew/14.mp3");
var sound15:URLRequest = new URLRequest("./music/krugovert/prew/15.mp3");
 
//var backStop:Boolean=false;
 
var mySound:Sound = new Sound()
var controller:SoundChannel;
 
var playStarted:Boolean=true;
 
krugovert_14.addEventListener(MouseEvent.ROLL_OVER, overBtn14);
krugovert_14.addEventListener(MouseEvent.ROLL_OUT, outBtn14);
 
 
function overBtn14(e:MouseEvent):void
{
	if (playStarted)
	{
	krugovert_14.gotoAndPlay(2)
	mySound= new Sound(sound14);
	}
}
 
function outBtn14(e:MouseEvent):void
{
	if (playStarted)
	{
	krugovert_14.gotoAndPlay(21)
	}
}
 
krugovert_15.addEventListener(MouseEvent.ROLL_OVER, overBtn15);
krugovert_15.addEventListener(MouseEvent.ROLL_OUT, outBtn15);
 
 
function overBtn15(e:MouseEvent):void
{
	if (playStarted)
	{
	krugovert_15.gotoAndPlay(2)
	mySound= new Sound(sound15);
	}
}
 
function outBtn15(e:MouseEvent):void
{
	if (playStarted)
	{
	krugovert_15.gotoAndPlay(21)
	}
} 
 
krugovert_15.stop_playBtn.playBtn.addEventListener(MouseEvent.CLICK, playTrack_01);
krugovert_15.stop_playBtn.stopBtn.addEventListener(MouseEvent.CLICK, stopSound);
 
//функция запускает музыку имя котрой определяет темная подложка
function playTrack_01 (e:MouseEvent):void
{
 
	playStarted=false;
	controller=mySound.play();
}
 
function stopSound (e:MouseEvent):void
{
 
	controller.stop();
	playStarted=true;
}
Очень расчитываю на вашу помощь...

Старый 07.09.2009, 20:47
Dante вне форума Посмотреть профиль Отправить личное сообщение для Dante Найти все сообщения от Dante
  № 7  
Ответить с цитированием
Dante

Регистрация: Feb 2009
Сообщений: 20
в твоем случае тогда легче сделать еще один статический класс с двумя функциями и одним диспатчером тогда будеш дергать только две его функции примером StaticClass.stopSounds() и StaticClass.playSounds() а он уже будет диспатчить события родителю,в родителе подпишешся только на два события,либо через parent но это плохая практика

Добавлено через 1 минуту
или кидай в детей сылку на родителя но это тоже не очень

Старый 07.09.2009, 22:17
Mazai вне форума Посмотреть профиль Отправить личное сообщение для Mazai Найти все сообщения от Mazai
  № 8  
Ответить с цитированием
Mazai

Регистрация: Sep 2009
Сообщений: 25
Цитата:
Сообщение от Dante Посмотреть сообщение
в твоем случае тогда легче сделать еще один статический класс с двумя функциями и одним диспатчером тогда будеш дергать только две его функции примером StaticClass.stopSounds() и StaticClass.playSounds() а он уже будет диспатчить события родителю,в родителе подпишешся только на два события,либо через parent но это плохая практика

Добавлено через 1 минуту
или кидай в детей сылку на родителя но это тоже не очень

Пожалуйста, можно короткий уже набитый на AS 3 примерчик. Просто я не программист и спец литературу не читал, потому "статический класс", "диспатчер" мне увы не очем не говорят. Научился хоть что то делать, просто анализируя примеры других работ, потому терминологию вообще почти не понимаю. Я вообще просто 3д дизайнер, а сайт для друзей музыкантов, которым имел глупость пообщать навоять сайт, погружатся в изучение флэша и дальше с ним работать наврядле буду(хотя процедура весьма увлекательная, может теперь уже сайтик и самому себе, но не больше), потому и пречитывать талмуд литературы не целесообразно, а тырить монстер темплейты очень сильно неприятно было, не стал. Все что мне нужно это довести этот сайт, осталось чуть чуть... фотогалерея и фоновая музыка, не разберусь с выключением музыки из внучка, придется завязать с идеей фоновой музыки, жаль но время уже поджимает... И если не затруднит набить короткий примерчик, я был бы весьма признателен...

PS. неужели нельзя из внучатого банально обратиться к проигрывателю как к файлу чрез 2 каталога root/playFrame/music. Ведь такая банальная процедура на словах.....

И еще идея сейчас пришла, может есть команда на тотальное вырубание вообще всех звуков в флешке ????
Помнится шерстил просторы инета и натыкался на что то похожее, но под AS2....
Попробую найти упоминания и в AS3...
Хотя не непойдет... его ведь нужно будет потом как то запустить....

ЗЗЫ Как бы то нибыло, большое спасибо всем кто пытается помочь!!!


Последний раз редактировалось Mazai; 07.09.2009 в 22:45.
Создать новую тему Ответ Часовой пояс GMT +4, время: 13:48.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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