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

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

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

Регистрация: Apr 2004
Адрес: Эстония
Сообщений: 37
Отправить сообщение для Марк с помощью ICQ
убрать звук вовремя не получается, т.к. onEnterFrame вызывается при смене кадров, т.е. если смены кадров нет и надо выключать звук - обработчик просто не вызывается ...

Нашел вот такие вещи в хелпе :
frame.soundLibraryItem = something (должно прицепить звук к фрейму)
frame.soundLoop (должно зациклить звук)

У меня не получилось это использовать, если не трудно напишите пример кода

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

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
попробуй setInterval

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

Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
Не понял тогда, что значит "пока мувик проигрывается"? Что таймирует его проигрывание?

Старый 13.12.2005, 14:00
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 14  
Ответить с цитированием
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
Цитата:
Сообщение от Марк
т.к. onEnterFrame вызывается при смене кадров, т.е. если смены кадров нет и надо выключать звук - обработчик просто не вызывается ...
Вызывается.

как часто выражаются в англоязычных туториалах "there is a popular misconception"... :) почему-то многие думают, что если не происходит фактического перехода между кадрами в клипе, это останавливает смену кадров вообще в целом.

смена кадров постоянна и непрерывна в ролике, что бы ни происходило. при большой нагрузке на флэш плеер, может упасть фпс, но он никогда не станет равным нулю.

даже если в ролике нет клипов вообще и всего один кадр в руте - смена кадров происходит. смена кадров = перерисовка экрана, обновление отображения всего на экране. если бы этого не было, было бы невозможно делать программную анимацию (которая с фактическими переходами по кадрам клипов вообще никак не связана).

Старый 13.12.2005, 14:31
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 15  
Ответить с цитированием
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
предлагаю решение в стиле AS1.
на мой взгляд, оно здесь наиболее адекватно.

если сильно захочется - перепиши всё это как класс AS2, расширяющий MovieClip. тогда сохранять ссылки на исходные методы не придется, можно будет вызывать их через super.

Код:
//
// предположим, clip - это клип, от проигрывания которого зависит звук
// если речь о главной линейке, то clip = _root
//
// обязательно ассоциируем звук с клипом
// и почему бы на записать ссылку на звук в сам клип...
clip.burning = new Sound(clip);
clip.burning.attachSound("burning");
//
// эта переменная хранит позицию звука
// (до какого места доигрался, в секундах)
clip.burning.current_time = 0;
//
// изначально клип стоит
clip.stop();
//
// сохраняем в клипе ссылки на исходные методы, управляющие проигрыванием
clip._play = clip.play;
clip._stop = clip.stop;
clip._gotoAndStop = clip.gotoAndStop;
// переопределяем методы, управляющие проигрыванием клипа
clip.play = function()
{
	// одновременно с запуском проигрывания запускаем и звук
	// с того же места, где он остановился
	this.burning.start(this.burning.current_time, 0);
	// выполняем исходный play
	this._play();
};
clip.stop = function()
{
	// запоминаем до какого места доигрался звук
	this.burning.current_time = this.burning.position/1000;
	// останавливаем звук одновременно с остановкой проигрывания
	this.burning.stop();
	// выполняем исходный stop
	this._stop();
};
clip.gotoAndStop = function()
{
	// выполняем исходный gotoAndStop
	this._gotoAndStop.apply(this, arguments);
	// дополнительно вызываем наш stop, чтобы остановился звук
	this.stop();
};
clip.gotoAndPlay = function()
{
	// выполняем исходный gotoAndStop
	this._gotoAndStop.apply(this, arguments);
	// вызываем наш play, чтобы запустился и клип и звук
	this.play();
};
//
// а это для того чтобы проверить как это всё работает.
// надо создать какой-нибудь клип, назвать его clip и сделать в нём какую-то анимацию
this.onMouseDown = function()
{
	// при первом клике запускаем проигрывание
	this.clip.play();
	var launch_function = arguments.callee;
	this.onMouseDown = function()
	{
		// при втором клике останавливаем проигрывание
		this.clip.stop();
		this.onMouseDown = launch_function;
	};
};
Цитата:
Сообщение от Марк
Нашел вот такие вещи в хелпе :
frame.soundLibraryItem = something (должно прицепить звук к фрейму)
frame.soundLoop (должно зациклить звук)
внимательнее... :) это ты открыл хэлп по JSFL, а не по ActionScript. обрати внимание, где находятся эти статьи хэлпа:
Extending Flash>Objects>Frame object>...

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

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

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


 


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


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