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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.01.2015, 18:33
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 11  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Простое решение вы сможете написать сами, если почерпнёте всю мудрость Колина Мука в его книге-полусправочнике.
Тем временем, в книге одновременно пишется образец построения приложения, правильной иерархии и соблюдение всех конвенций.

Думаю, нет на этом форуме опытных людей, кто не читал Мука.
Если будете бегать от своего кривого кода к форуму и обратно в поисках решения - это не прибавит вам много знаний и опыта.
Учитесь решать проблемы и задачи своими силами.
__________________
There is no thing in this world that is not simple.

Старый 23.01.2015, 19:08
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 12  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Как бы, я наверное буду кэпом, но:
Код AS3:
import flash.media.Sound;
import flash.media.SoundChannel; 
 
var devochkaPrivet:Sound = new devPrivet;
var malchikPrivet:Sound = new malPrivet;
var soundChannel:SoundChannel = null;
 
   if (soundChannel != null) soundChannel.stop(); // сначала тормозим речь, если кто-то в данный момент говорит
if (currentPersone == девочка) {
 
   soundChannel = devochkaPrivet.play();
} else {
   soundChannel = malchikPrivet.play();
}
п.с. Не надо использовать названия на кириллице. Это как минимум не удобно, при написании кода. Да и смотрится такой код ужасно.
К вот этому совету http://www.flasher.ru/forum/showpost...40&postcount=9 очень стоит прислушаться, если хотите дальше заниматься программированием

Старый 25.01.2015, 10:55
Nikem79 вне форума Посмотреть профиль Отправить личное сообщение для Nikem79 Найти все сообщения от Nikem79
  № 13  
Ответить с цитированием
Nikem79

Регистрация: Aug 2006
Сообщений: 35
Цитата:
Простое решение вы сможете написать сами, если почерпнёте всю мудрость Колина Мука в его книге-полусправочнике.
Тем временем, в книге одновременно пишется образец построения приложения, правильной иерархии и соблюдение всех конвенций.
спасибо, согласен со всем

caseyryan Благодарю за вариант, но хотелось обращаться к звуку из функции, без проверок. Представьте, если звуков будет большой массив?.. А обращаться к звукам нужно будет много...

Старый 25.01.2015, 18:58
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 14  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Если будет "большой массив", то надо пользоваться массивом или справочником, как разумно советовал olexandr. Иначе у Вас будет бесконечный список переменных, по сути и переменными то не являющихся, а просто хранящих ссылки на каждый конкретный класс звука. Они не нужны в таком "поименном" виде, у Вас уже есть "поименные" классы. Соберите их в массив или справочники. Допустим
Код AS3:
var _helloSounds:Dictionary = new Dictionary();
_helloSounds[boyMC] = BoyHello; // link to class
_helloSounds[girlMC] = GirlHello; // link to class
_helloSounds[momMC] = MomHello; // link to class
и потом, когда нажата кнопка говорить Привет, вытаскиваете звук. Текущий актер нам уже известен
Код AS3:
var sound:Sound = new (_helloSounds[_currentActer] as Class)() //?/ as Sound;
_voiceChannel = sound.play();
Вариантов организации справочника много, можно делать по-разному. Например, может быть один справочник всех звуков, у него ключи — клипы актеров, а по ключам хранятся массивы или векторы звуков для данного актера, звуки в одинаковом порядке.
Код AS3:
var _allSounds:Dictionary = new Dictionary();
 _allSounds[boyMC] = [BoyMMM, BoyHello, BoyWTF, BoyGoodBy]; // ссылки на классы Звуков
 _allSounds[girlMC] = [GirlMMM, GirlHello, GirlWTF, GirlGoodBy]; // ссылки на классы Звуков
Тогда кнопка "говорить привет" будет вызывать метод "говорить" и передавать ему номер реплики
Код AS3:
talk(1);
Код AS3:
private function talk(replicCount:int):void
{
	var sound:Sound = new (_allSounds[_currentActer][replicCount] as Class)();
	_voiceChannel = sound.play();
}
__________________
Reality.getBounds(this);

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

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

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


 


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


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