PDA

Просмотр полной версии : Звук и SharedObject


sasaindahouse
01.06.2007, 03:30
Друзья, помогите плиз, зеленому. Суть такова: есть флеш-эквалайзер, вставлен в HTML, с плавно включаемым-выключаемым звуком, также есть OnClipEvent с проверкой SharedObject:

onClipEvent(load)
{
var cadr:SharedObject = SharedObject.getLocal("sasa","/");
if (cadr.data.sound=="1")
{
_root.soundstatus="on";
_root.sasa = new Sound();
maxvolume=100;
minvolume=0;
}
if (cadr.data.sound=="2")
{
_root.soundstatus="off";
_root.sasa = new Sound();
maxvolume=0;
minvolume=100;
}

}
onClipEvent(enterFrame)
{
if(_root.soundstatus=="on") {step=5}
if(_root.soundstatus=="off") {step=-5}

maxvolume+=step;

if (maxvolume>100) {maxvolume=100;}
if (maxvolume<0) {maxvolume=0;}

_root.sasa.setVolume(maxvolume);
}


Но есть одна маленькая проблема, при первичной загрузке ролика, музыка не выключается, сколько ни нажимай на эквалайзер, т.е. когда еще sasa.sol не загрузился на компе (он это делает после закрытия), стоит перейти на другую страницу, как эквалайзер работает корректно.
З.Ы. Забыл сказать, одна кнопка на разных кадрах задает cadr.data.sound="1" или "2". Как быть?

screamge
01.06.2007, 04:48
OnClipEvent - гадость

нужно:


this.onEnterFrame = function (){
{
if(_root.soundstatus=="on") {step=5}
if(_root.soundstatus=="off") {step=-5}

maxvolume+=step;

if (maxvolume>100) {maxvolume=100;}
if (maxvolume<0) {maxvolume=0;}

_root.sasa.setVolume(maxvolume);
}


тоже самок onLoad.
Ко всему прочему у вас onEnterFrame не удаляется, нужно дописывать в условия:


if (maxvolume>100)
{maxvolume=100;
delete this.onEnterFrame;
}



Будет хорошо если вы выложите код, как вы записываете SO;

Да и при первом запуске чтобы работало корректно нужно добавить условие :

if (card.data.sound == undefined){
...
}

sasaindahouse
01.06.2007, 09:32
Ура-а-а! Заработало! СПАСИБО. Обалденный форум, много глюков здесь решил. Что бы мы, зеленые, без вас делали? Блин, ведь читал про undefined, но как-то не догадался присвоить ему условие. Ладно, теперь буду читать о том чем плох этот OnClipEvent. Еще раз БОЛЬШОЕ такое спасибо. Очень помогли.