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

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

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

Регистрация: Aug 2012
Сообщений: 297
По умолчанию Отсутствует воспроизведение если обращение к треку происходит не в главном классе

Здравствуйте.

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

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
наверное что-то сломалось

Старый 10.12.2013, 23:02
Dip52 вне форума Посмотреть профиль Отправить личное сообщение для Dip52 Найти все сообщения от Dip52
  № 3  
Ответить с цитированием
Dip52

Регистрация: Aug 2012
Сообщений: 297
Цитата:
Сообщение от caseyryan Посмотреть сообщение
наверное что-то сломалось
То есть, это не нормально? Должно работать?

"ArgumentError: Error #2068: Недопустимый звуковой файл."


Код AS3:
package massacre
{
	import flash.events.Event;
	import flash.display.MovieClip;
	import flash.media.Sound;
	import flash.media.SoundChannel;
	import flash.media.SoundTransform;
 
	public class Condition extends MovieClip
	{
		public static var coordinateX:Number = 500;
		public static var coordinateY:Number = 700;
 
		public static var absenceReceive:Boolean = true;		//Отсутствие приёма:
 
		private var soundAbsenceReceivePlaying:Boolean = false;	//Воспроизведение звука отсутствия приёма происходит\не происходит:
 
		//ИНДИКАТОРЫ:
		private var indicatorAbsenceReceive:MovieClip;		//Индикатор отсутствия приёма:
 
		//ЗВУКИ:
		private const SOUNDABSENCERECEIVE:Sound = new SoundAbsenceReceive();	//Звук отсутствия приёма:
 
		private var soundChannel:SoundChannel = new SoundChannel();
 
		public function Condition(indicatorAbsenceReceiveUrl:MovieClip):void
		{
			init(indicatorAbsenceReceiveUrl);
		}
		private function init(indicatorAbsenceReceiveUrl:MovieClip):void
		{
 
			indicatorAbsenceReceive = indicatorAbsenceReceiveUrl;			//Индикатор отсутствия приёма:
			addEventListener(Event.ENTER_FRAME,condition);
		}
		private function condition(event:Event):void
		{
			//Если приём отсутствует, то:
			if(absenceReceive)
			{
				indicatorAbsenceReceive.gotoAndStop(2);
				//Если воспроизведение звука отсутствие приёма не происходит, то:
				if(!soundAbsenceReceivePlaying)
				{
					trace("Приём отсутствует!");
					soundAbsenceReceivePlaying = true;
					soundChannel = new SoundChannel();
					soundChannel = SOUNDABSENCERECEIVE.play();
					soundChannel.soundTransform = new SoundTransform(Settings.VOLUMESOUNDEFFECTS);
					soundChannel.addEventListener(Event.SOUND_COMPLETE,playingSoundAbsenceReceive);
				}
			}
			else
			{
				indicatorAbsenceReceive.gotoAndStop(1);
			}
		}
		private function playingSoundAbsenceReceive(event:Event):void
		{
			trace("Воспроизведение звука отсутствие приёма закончилось!");
			soundAbsenceReceivePlaying = false;
			const SOUND:* = event.target;
			SOUND.removeEventListener(Event.SOUND_COMPLETE,playingSoundAbsenceReceive);
		}
	}
}


Последний раз редактировалось Dip52; 10.12.2013 в 23:13.
Старый 11.12.2013, 08:03
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
То есть, это не нормально? Должно работать?
То есть когда нормально, тогда все должно работать. Тут вряд ли найдутся телепаты, способные выявить ошибку основываясь на такой информации.

Приведенный код так же ничего не проясняет.
Одно можно сказать точно, отсюда нужно убрать слушатель ENTER_FRAME. Не правильно делать такие вещи в каждом кадре.

п.с. К ошибке это конечно отношения не имеет, но почему параметр с типом данных MovieClip называется indicatorAbsenceReceiveUrl? URL может быть строкой, но никак не мувиклипом

Старый 12.12.2013, 02:39
Dip52 вне форума Посмотреть профиль Отправить личное сообщение для Dip52 Найти все сообщения от Dip52
  № 5  
Ответить с цитированием
Dip52

Регистрация: Aug 2012
Сообщений: 297
Я нашёл ошибку. У меня в приложение есть MovieClip. В нём есть два слоя: в одном текстовое поле, в другом присваивание этому текстовому полю значения, которое берётся из статической переменной из класса Condition (класс, где я и пытался воспроизвести трек).
Получается, что экземпляр (или как это называется в данном случае) класса создавался во время обращения к статическим переменным этого класса, а в этот момент, возможно, не было связи с библиотекой.


Последний раз редактировалось Dip52; 12.12.2013 в 03:49.
Создать новую тему Ответ Часовой пояс GMT +4, время: 06:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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