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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 09.01.2004, 00:24
Александр-HIMик вне форума Посмотреть профиль Отправить личное сообщение для Александр-HIMик Посетить домашнюю страницу Александр-HIMик Найти все сообщения от Александр-HIMик
  № 1  
Александр-HIMик
 
Аватар для Александр-HIMик

Регистрация: Jan 2004
Адрес: Абакан, Республика Хакасия
Сообщений: 10
Отправить сообщение для Александр-HIMик с помощью ICQ Отправить сообщение для Александр-HIMик с помощью AIM Отправить сообщение для Александр-HIMик с помощью Yahoo
По умолчанию Динамический Load/UnLoad movies

Ситуация такая: есть главный мув, который загружает в себя другой мувик из папки. Типа так.
movnum = random(9); // возьмем к примеру 9 мувиков с именами sound0.swf-sound8.swf
loadMovieNum("sound/sound"+movnum+".swf", 1);

Я успешно использовал такой ход для загрузки разнообразных аудио-подложек для одного из своих проектов. Теперь нужно нечно большее и вот тут то я и встрял.
В каждом загружаемом мувике есть звуковой фрагмент, который проигрывается один-два раза за весь мувик. На этом мувик исчерпан. Задача в следующем: сделать так, чтобы после "рандомной" загрузки мувика и после его воспроизведения (для каждого мувика время воспроизведения t=10 sec), он выгружался и опять же загружался рандомом следующий мувик. Картина получается такая: заходит пользователь на сайт, а там всякие шорохи, скрежет, шепот.. И желательно сделать Action для главного мувика, который бы останавливал этот процесс бесконечной загрузки. Мало ли что. %))
__________________
<<.. я примерно представляю, что мне надо. Только вот пока не знаю от кого..>>

Старый 09.01.2004, 01:01
Штрек вне форума Посмотреть профиль Отправить личное сообщение для Штрек Найти все сообщения от Штрек
  № 2  
Штрек

Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
Ну setInterval.
Что не подходит?

Старый 10.01.2004, 16:53
Александр-HIMик вне форума Посмотреть профиль Отправить личное сообщение для Александр-HIMик Посетить домашнюю страницу Александр-HIMик Найти все сообщения от Александр-HIMик
  № 3  
Александр-HIMик
 
Аватар для Александр-HIMик

Регистрация: Jan 2004
Адрес: Абакан, Республика Хакасия
Сообщений: 10
Отправить сообщение для Александр-HIMик с помощью ICQ Отправить сообщение для Александр-HIMик с помощью AIM Отправить сообщение для Александр-HIMик с помощью Yahoo
Если рассмотреть подробнее:
1й кадр. Определяем рандомом номер, формируем имя файла с мувиком. Загружаем его. Если файл загружен -> кадр2.
2й кадр. Проигрываем мувик. Ставим SetInterval = t, именно столько времени положено для проигрывания. Определяем функцию, например Go1st, которая бы выгружала мувик и переходила на первый кадр. Вызываем SetInterval(t,Go1st);
Вроде так.
Теперь как бы вставить условие, чтобы можно было бы вырубить весь этот процесс?
__________________
<<.. я примерно представляю, что мне надо. Только вот пока не знаю от кого..>>

Старый 10.01.2004, 18:44
sergwizard вне форума Посмотреть профиль Отправить личное сообщение для sergwizard Посетить домашнюю страницу sergwizard Найти все сообщения от sergwizard
  № 4  
sergwizard
 
Аватар для sergwizard

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
В главном мувике пишем такой код.
Код:
snd = ["sound0.swf","sound1.swf","sound2.swf","sound3.swf","sound4.swf","sound5.swf","sound6.swf","sound7.swf","sound8.swf"]
for(i=0;i<9;i++){
	this.createEmptyMovieClip("sound_mc"+i,i)
		loadIt();
}
function loadIt(){
	_root["sound_mc"+i].loadMovie("sound/"+snd[i]);
}
function playRand(){
	num = random(9);
	if(num!=numb){
		stopAllSounds();
		_root["sound_mc"+num].gotoAndStop(2);
		_root["sound_mc"+numb].gotoAndStop(1);
		numb=num;
	}
}
function stopMusic(){
	stopAllSounds();
	clearInterval(m);
	num=10;
}
m = setInterval(playRand, 10000);
btn.onRelease = function(){
	pressed = (pressed+1)%2;
	pressed ? stopMusic() : m = setInterval(playRand, 10000);
	pressed ? txt="play" : txt="stop";
}
Звуковые мувики делаешь по такому принципу: первый фрейм - пустой, с кодом stop();
2-фрейм с вложенным звуком и кодом stop();
Лучше смотри пример. Все звуковые мувики сделай по этому образцу.
Вложения
Тип файла: zip rand.zip (84.6 Кб, 63 просмотров)
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)


Последний раз редактировалось sergwizard; 10.01.2004 в 18:45.
Старый 10.01.2004, 19:05
Штрек вне форума Посмотреть профиль Отправить личное сообщение для Штрек Найти все сообщения от Штрек
  № 5  
Штрек

Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
Всё это хорошо?!
Но зачем грузить всё сразу?
Зачем 9 мувиков для подгрузки?
Если надо, чтоб пока один воспр., другой грузился,
то может и 2,3 хватит?
Смотрю в полглаза, мож чего то и не увидел?
Извиняюсь.

Старый 10.01.2004, 19:06
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 6  
__i
 
Аватар для __i

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

Старый 10.01.2004, 20:02
sergwizard вне форума Посмотреть профиль Отправить личное сообщение для sergwizard Посетить домашнюю страницу sergwizard Найти все сообщения от sergwizard
  № 7  
sergwizard
 
Аватар для sergwizard

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
2 Штрек. Для начала, вполне бы хватило и 2-3 мувиков, ты прав. Вот только бы ты еще подсказал, каких именно? Они же РЭМДОМНО должны проигрываться. Это раз. А два, - у тебя сначала будут постоянно возникать паузы между звуками: - функция вызвана а мувика еще нет. Чё делать? А время идет, и через 10 секунд опять вызов функции. Хило будет. Проверено уже.
2__i Если swf(шки) не музыкальные, а нормальные, то проблем вообще никаких нет. В конце каждого мувика обнуляем переменную. В начале мувика приравниваем к true. В основном проверяем. Нет переменной, - грузим новый, есть переменная, - ждемс, когда закончится.
Ну, а если это музыкальные мувики, - подумать надо. Я так, влет не готов ответить.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

Старый 10.01.2004, 21:04
sergwizard вне форума Посмотреть профиль Отправить личное сообщение для sergwizard Посетить домашнюю страницу sergwizard Найти все сообщения от sergwizard
  № 8  
sergwizard
 
Аватар для sergwizard

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
2__i
Есть такое - "Sound.onSoundComplete". Flash проверяет, закончилась ли музыка. Если да, то можно вызывать следующую функцию.
В подгружаемых музыкальных файлах пишем типа такого:
Код:
mySound = new Sound();
mySound.attachSound("name");
mySound.start();
mySound.onSoundComplete = _root.playNew;
А в главном прописываем функцию playNew();
Вот и все.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

Старый 11.01.2004, 00:52
Александр-HIMик вне форума Посмотреть профиль Отправить личное сообщение для Александр-HIMик Посетить домашнюю страницу Александр-HIMик Найти все сообщения от Александр-HIMик
  № 9  
Александр-HIMик
 
Аватар для Александр-HIMик

Регистрация: Jan 2004
Адрес: Абакан, Республика Хакасия
Сообщений: 10
Отправить сообщение для Александр-HIMик с помощью ICQ Отправить сообщение для Александр-HIMик с помощью AIM Отправить сообщение для Александр-HIMик с помощью Yahoo
Теперь бы все это в одно свести. Я весь вечер долбился, что-то своего ничего не вышло. Если я вызываю _level1.play();, то stop(); находящийся в загруженном на _level1 мувике будет распознан и остановит play в нужном месте? А как вызвать _level1.play(); сразу же при переходе на нужный кадр?
А unloadMovie/unloadMovieNum() совсем нафиг не нужен?
И он что, будет все swf сразу грузить? А если я не поленюсь и сделаю их 50 и более. Он не лопнет? %)
Паузы между звуками, в смысле непрерывное вопроизведение всех мувов? Вообще-то паузы должны быть, желательно оговорить какое-то стандартное время t, за которое бы подгружался рандомом выбранный следующий мув. со звуком.
__________________
<<.. я примерно представляю, что мне надо. Только вот пока не знаю от кого..>>

Старый 11.01.2004, 01:55
sergwizard вне форума Посмотреть профиль Отправить личное сообщение для sergwizard Посетить домашнюю страницу sergwizard Найти все сообщения от sergwizard
  № 10  
sergwizard
 
Аватар для sergwizard

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
Цитата:
желательно оговорить какое-то стандартное время t, за которое бы подгружался рандомом выбранный следующий мув. со звуком.
Оговорить? С кем??? Или ты думаешь, что можно заранее оговорить скорость подключения? Вообще, создается впечатление, что ты разговариваешь сам с собой, бредишь то есть. Вот это что значит?
Цитата:
Если я вызываю _level1.play();, то stop(); находящийся в загруженном на _level1 мувике будет распознан и остановит play в нужном месте? А как вызвать _level1.play(); сразу же при переходе на нужный кадр?
Цитата:
И он что, будет все swf сразу грузить? А если я не поленюсь и сделаю их 50 и более. Он не лопнет? %)
Поверь мне, - не лопнет. Flash прощает достаточно много глупостей. Вот только я сомневаюсь, что посетителю твоего сайта будет интересны эти 50 звуков. Тем более рэмдомно звучащие. 50 мувиков с 10 секундным звучанием – это порядка полутора–двух мегабайтов. И больше 8 минут звучания. Даже если твой сайт безумно оригинальный и интересный, и посетитель не сможет оторваться от него больше десяти минут, то все равно он устанет от такой какофонии и выключит звук после первой минуты. Я, честно говоря, не очень понимаю, зачем тебе и эти 9 рэмдомных мувиков.
Цитата:
Я весь вечер долбился, что-то своего ничего не вышло.
А вот это уже не бред, - очень похоже на правду.
Совет: приступая к чему-либо, сначала продумай, что ты хочешь, и как это будет выглядеть. Потом – можно ли это сделать. И только потом – КАК это сделать.
Удачи.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

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

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

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


 


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


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