Просмотр полной версии : Отключение и сохранение
Есть флеш заголовок к сайту в котором будет звук и кнопка отключения звука.
Ситуация такая: человек просмотрел страницу, выключил на ней звук, перешёл на другую, там звук играет, чего быть не должно, раз он отключил его до этого.
Слышал, что есть какой-то скрипт с куками работающий, который может сохранить отключение звука у пользователя на компьютере, и при переходе со страницы на страницу звук будет выключен.
Пожалуйста, дайте код скрипта, и скажет куда его поставить. Заранее большое спасибо.
Никаких кодов скрипта ты не получишь -- попрошайки идут читать хелп (http://www.novemberain.com/arch/flash7-ru-livedocs.zip).
Читать надо про SharedObject (http://novemberain.com/livedocs/Help/ActionScriptLangRef/00001664.html).
Я не разбираюсь в програмировании, как бы не хотел, туговат на это дело, поэтому и прошу помочь.
Нашёл Local SharedObject - http://www.flash-ripper.com/articles/flash/2002_07_30_localsobject.htm
Вот вроде бы всё написано, но не могу сообразить как сделать так, чтобы при повторной загрузке ролика человека направлять на определённый кадр. Будьте хорошим человеком, и объясните как это делается. Перерыл поиск, но результата нет... По Вашей ссылки из хелпа вообще боюсь её, так как для меня это китайская грамота, а времени и сил сейчас учить её нет абсолютно, нужен результат.
Ну пожалейте новичка, ну выручите, уже несколько часов копаюсь, дошёл до следующего.
Вот этот код нужно разместить в последнем фрейме:
// Get the kookie
so = sharedobject.getlocal(\\\"kookie\\\");
// Get the user of the kookie and go to the frame number saved for this user.
if (so.data.user != undefined) {
this.user = so.data.user;
this.gotoAndStop(so.data.frame);
}
Вот этот на протяжении всей флешки:
// On each frame, call the rememberme function to save the frame number.
function rememberme() {
so.data.frame=this._currentFrame;
so.data.user=\\\"John\\\";
}
Как я понял, первый записывает данные о пользователе, что мол он был здесь, а второй проверяет этого пользователя, был ли он.
Но как сделать так, чтобы при переходе на другую страницу сохранялось отключене звука, которое было установлено заранее
с помощью кнопки включения и отключения звука с кодом:
on (press, keyPress \\\"1\\\") {
this.play();
}
я не знаю, пожалуйста, скажите что нужно сделать дальше.
Или первый сохраняет кадр, а второй воспроизводит его, в общем я запутался...
Ну в хелпе и в твоем примере все ж предельно ясно, хотя ты и перепутал варианты. Сделай переменную-флаг сохрани ее в кукише и проверяй при загрузке. По ее состоянию включаешь, либо гасишь музыку. На кнопку, кроме управления музыкой, вешаешь еще изменение флага и запись его на тачку юзера.
Вот смотрите что у меня выходит.
На кнопку вешаю значение:
on (release) {
mySound.setVolume(0);
so = 1;
}
После создаю кадр на всю длину и помечаю его именем so через флаг.
В нём пишу:
if (so == 1) {
stopAllSounds();
}
А вот как сохранить это значение не знаю. Т.е. в данном случае у меня уже есть сравнение, что мол если кнопка нажата, то переменная so=1, а значит остановить весь звук. Но как сохранить это на комп пользователя не знаю, подскажите, пожалуйста, как это сделать.
или нужно написать так:
if (so == 1) {
mySound.setVolume(0);
а вот здесь передать сохранение на машину пользователя, передать, что звук отключён, и будет отключён при следующей загрузке. Скажите, пожалуйста, как это сделать, как передать?
}
var muz_flag=true;
var so=SharedObject.getLocal("kookie");
if(so.data.flag!=undefined){
this.muz_flag=so.data.flag;
}
if(muz_flag){
//Запускаем музон
}else{
//Останавливаем музон
}
btn_Muz_Stop.onPress=function(){
muz_flag=false;
so.data.flag=muz_flag;
so.flush();
//Команда на остановку музыки;
}
btn_Muz_Start.onPress=function(){
muz_flag=true;
so.data.flag=muz_flag;
so.flush();
//Команда на запуск музыки;
}
Что-то типа такого...
Все верно в посте от 18:25. А как сохранить есть пример в хелпе.
Потом при загрузке надо читать (тоже есть пример) и по условию либо включать, либо нет.
Ты почти все сделал сам, мои поздравления! :)
Ты почти все сделал сам, мои поздравления! :)
Пока рано праздновать, не работает ничего :(
Что-то типа такого...:)
Посмотрите, пожалуйста, прикреплённый исходник. Не работает, что-то упустил, не могу разобраться, подскажите, пожалуйста.
лучше используй stop() и start() вместо setVolume()
_root.createEmptyMovieClip("music_mc", 1);
var music = new Sound("music_mc");
music.attachSound("mus");
и управляй переменной music как хочешь!
_root.createEmptyMovieClip(\"music_mc\", 1);
var music = new Sound(\"music_mc\");
music.attachSound(\"mus\");
и управляй переменной music как хочешь!
Во время проигрывания флеша звук привязан к событиям, и если его остановить, то вероятно, будет расхождение звука и события, хотя я не уверен, так как не силён в этом. Звук у меня уменьшается и увеличивается, а вот сохранение звука нет.
Нужно, чтобы если звук был отключен, и человек ушёл на другую страничку, то и на ней звук так же был отключен, сейчас же он начинает играть при переходе на другую страницу, хотя до этого был отключён, нужно сохранить это отключение, если оно было.
Ну вот что получилось.
Просто супер, огромно Вам спасибо, сохраняет, да ещё как... :))) Спасибо.
Но теперь новая проблема, теперь звук расходится с событием. На компьютере нормально всё, а вот в сеть закачиваю звук живёт своей жизнью, а событие своей, почему такое расхождение появилось?
Может потому, что ещё прелоадер в первый кадр влипил, хотя не должно это вроде повлиять.
Ещё когда звук отключу, после включу, синхронности нет пока флешка не дойдёт до конца и не начнёт проигрываться с начала, тогда синхронность восстанавливается.
Разбираясь в коде понял, что звук останавливается и запускается. Изменил в коде такую строчку:
muz_flag ? my_soun.setVolume(100) : my_soun.setVolume(0);
Но теперь звук вообще не играет. Пожалуйста, подскажите, как при нажатии на кнопку звук уменьшать, при повторном увеличивать, может из за этой остановки звука происходит рассинхронизация, хотя вряд-ли, ведь рассинхронизация идёт при простой загрузке, пока ещё не жал на кнопку.
Пожалуйста, помогите решить этот вопрос, не знаю на что думать, везде одни коды, от которых я пока далёк, но хочу приблизиться.
Такое ощущение, что звук идёт быстрее кадров, спешит. Когда флешка доходит до конца и начинает играть с начала, звук восстанавливается, после опять убегает вперёд, и так далее. Скажите, пожалуйста, как это исправляется?
Я там событий не заметил, может упустил чего? Попозже еще посмотрю. Немножко занят сейчас. :)
Я там событий не заметил, может упустил чего? Попозже еще посмотрю. Немножко занят сейчас. :)
Это я упустил :)) Прикрепляю исходник другой, там два звука и события.
Там два события в главной директории, назвал звук один и звук два, и нужно к каждому поставить свой звук, и при использовании кнопки отключения звука управлять ими обоими сразу ( лучше наверное звук убавлять чем выключать, хотя я не знаю ). Попробовал добавить звук так же как первый, но он не играет, код не менял в приложенном файле, а то наворотил я там делов, аж страшно смотреть, и при этом ничего не работает :(
Здесь наверное нужно как-то привязать проигрывание каждого звука к отдельным кадрам. Чтобы первый допустим проигрывался на протяжении первого события, после отключался, а второй на протяжении второго. Как это сделать проблема для меня, исчу всё утро :)
Ну вот так только. Хотя "событий" я там так и не увидел :rolleyes: Что под этим понятием подразумевается?
Проблема еще в том, что при такой организации, в момент нажатия, звук проигрывается с начала на любом кадре таймлайна, поэтому при 1 прогоне и происходит рассинхронизация. Далее, если не долбить по кнопе, порядок.
Я так понял, что звуки здесь должны проигрываться просто последовательно и при смене "мелодии" что-то изменяется визуально??
Тогда, проще, засунуть звуки в мувик, расположив там их по таймлайну с необходимыми паузами, а кнопкой управлять уже этим мувом и запоминать в кукишах его текущий кадр. В архиве есть и пример команды и пример такого мува.
Ну вот так только. Хотя \"событий\" я там так и не увидел :rolleyes: Что под этим понятием подразумевается?
Проблема еще в том, что при такой организации, в момент нажатия, звук проигрывается с начала на любом кадре таймлайна, поэтому при 1 прогоне и происходит рассинхронизация. Далее, если не долбить по кнопе, порядок.
Я так понял, что звуки здесь должны проигрываться просто последовательно и при смене \"мелодии\" что-то изменяется визуально??
Тогда, проще, засунуть звуки в мувик, расположив там их по таймлайну с необходимыми паузами, а кнопкой управлять уже этим мувом и запоминать в кукишах его текущий кадр. В архиве есть и пример команды и пример такого мува.
Под событиями у меня просто смена вида, как бы звук должен сопровождать действие :)
Да, изменяется визуально и это изменение сопровождает звук.
Пол дня копаясь привёл всё в порядок благодаря Вам, очень выручили, большое Вам, просто огромное спасибо :)
Если я могу чем-то помочь, с удовольствием, только свисните меня через личку ;)
Ещё раз спасибо.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.