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

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

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

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Только вот этого
Код AS1/AS2:
var muz:Sound = new Sound();
Лучше всегда избегать. Ибо созданный звук будет управлять всеми звуками существующими в фильме.
Предлагаю делать так
Код AS1/AS2:
createEmptyMovieClip("clip",getNextHighestDepth());
var muz:Sound = new Sound(clip);
__________________
Играй. Это жизнь.
Всё повторяется. Играй.

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

Регистрация: Apr 2010
Сообщений: 81
Цитата:
Сообщение от mooncar Посмотреть сообщение
Ставьте звук на паузу вместо stop() .
Для этого перед остановкой можно запомнить позицию (Sound.position property). И запускать уже с нужной позиции.
Только следует учесть, что position берется в миллисекундах, а офсет в start() выставляется в секундах, так что округляйте.
А Вы можете показать как это в коде выглядело бы?

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

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Код AS1/AS2:
snd.stop()
position=snd.position;
snd.start(Math.floor(position/1000));
__________________
Играй. Это жизнь.
Всё повторяется. Играй.

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

Регистрация: Apr 2010
Сообщений: 81
Цитата:
Сообщение от AzagThoth Посмотреть сообщение
Код AS1/AS2:
snd.stop()
position=snd.position;
snd.start(Math.floor(position/1000));
К сожалению, работает некорректно, при повторном наведении музыка воспроизводится вроде с того же места, но, поскольку как бы снова срабатывает rollOver, то запускается еще раз и получаются дублирующие каналы (не знаю, правильно ли объяснил)

вот код:
Код AS1/AS2:
createEmptyMovieClip("clip",getNextHighestDepth());
var muz:Sound = new Sound(clip);
muz.loadSound("s1.mp3", false);
 
btn.onRollOver = function () { 
muz.start();
muz.setVolume(25);
};
 
btn.onRollOut = fadeOutSound;
 
function fadeOutSound():Void {
    if (id) {
        clearInterval(id);
    }
    var volume = muz.getVolume();
    id = setInterval(fadeOut, 10);
    function fadeOut():Void {
        muz.setVolume(volume--);
        if (volume<=0) {
            clearInterval(id);
            muz.stop()
			position=muz.position;
			muz.start(Math.floor(position/1000));
        }
    }
}

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

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Код AS1/AS2:
createEmptyMovieClip("clip",getNextHighestDepth());
var muz:Sound = new Sound(clip);
var position:Number=0;
muz.loadSound("s1.mp3", false);
 
btn.onRollOver = function () { 
muz.start(Math.floor(position/1000));
muz.setVolume(25);
};
 
btn.onRollOut = fadeOutSound;
 
function fadeOutSound():Void {
    if (id) {
        clearInterval(id);
    }
    var volume = muz.getVolume();
    id = setInterval(fadeOut, 10);
    function fadeOut():Void {
        muz.setVolume(volume--);
        if (volume<=0) {
            clearInterval(id);
            muz.stop()
	    position=muz.position;
        }
    }
}
__________________
Играй. Это жизнь.
Всё повторяется. Играй.

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

Регистрация: Apr 2010
Сообщений: 81
я уже догадался, где "накосячил", все вроде работает правильно, но когда трек заканчивается - он не повторяется и это правильно, однако логично предположить что если отвести мышку и подвести вновь, то трек должен проиграться снова... а этого увы не происходит...

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

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Опишите обработчик функции onSoundComplete
Адекватный на сегодняшний день хелп по AS2 можете взять тут: http://nnm-club.ru/forum/viewtopic.php?t=192686
__________________
Играй. Это жизнь.
Всё повторяется. Играй.


Последний раз редактировалось AzagThoth; 24.04.2010 в 13:22.
Старый 24.04.2010, 13:26
studmar вне форума Посмотреть профиль Отправить личное сообщение для studmar Найти все сообщения от studmar
  № 18  
Ответить с цитированием
studmar
 
Аватар для studmar

Регистрация: Apr 2010
Сообщений: 81
Цитата:
Сообщение от AzagThoth Посмотреть сообщение
Опишите обработчик функции onSoundComplete
Вы можете показать пример?
Хелп я посмотреть могу, но правильно применить - тут проблема..
Я не совсем понимаю как это сделать ибо не программист, и поэтому делаю все методом "тыка"

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

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
В вашем случае достаточно сделать так.
Код AS1/AS2:
muz.onSoundComplete=function():Void{
     position=0;
     flag=true;
}
Флаг переменная со значением булево. В Вашей функции фадеОут проверяете и если она true то присваиваете false, а также не переопределяете переменную position. В противном случае переопределяете.
__________________
Играй. Это жизнь.
Всё повторяется. Играй.

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

Регистрация: Apr 2010
Сообщений: 81
Покопавшись в сети, попробовал сделать, вот что получилось:
Код AS1/AS2:
createEmptyMovieClip("clip",getNextHighestDepth());
var muz:Sound = new Sound(clip);
var position:Number=0;
muz.loadSound("s1.mp3", false);
muz.onSoundComplete=function():Void{
     position=0;
     flag=true;
}
 
btn.onRollOver = function () { 
	muz.start(Math.floor(position/1000));
	muz.setVolume(25);
	};
 
btn.onRollOut = fadeOutSound;
 
function fadeOutSound():Void {
 
   	if (id) {
        clearInterval(id);
    }
    var volume = muz.getVolume();
    id = setInterval(fadeOut, 10);
    function fadeOut():Void {
        muz.setVolume(volume--);
        if (volume<=0) {
            clearInterval(id);
      	muz.stop()
 
		if (flag == true) {
		flag == false;
		}
		else {
		position=muz.position;		
		}
	 }
    }
}
Вроде работает, как и надо, но срабатывает все один раз: при наведении файл воспроизводится, при отводе "затухает", если снова навести - проигрывается с того же места - все ок. После того как файл проигрался и мышка остается в поле movieclip - ничего не происходит - так и должно быть, затем если отвести и подвести вновь - файл воспроизведется, но если отвести и подвести еще раз - он начнет играть с начала, а не стого же месте, т.о. реально все работает только при одном цикле.


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

Теги
onEnterFrame , onRollOver , звук
Опции темы
Опции просмотра

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

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


 


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


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