PDA

Просмотр полной версии : Изменение цвета кнопки по клику из другого клипа


morda_
08.04.2010, 17:40
Долблюсь уже давно с презенташкой и буду благодарен за помощь, т.к. терпения уже не хватает. AS знаю ужасно плохо.
В клипе есть несколько кнопок, b1, b2, b3, b4, b5, эти кнопки загружают на сцену в первый слой мувик с текстом. Внутри этих кнопок есть два кадра, первый кадр отображает состояние кнопки до нажатия, второй после нажатия. При нажатие на другую кнопку, эта первая возвращается на первый кадр (т.е. кнопка приходит в исходное положение). Вот код к этим кнопкам:
function relese(obj)
{
if (!obj.down)
{
normal();
obj.down = true;
obj.gotoAndStop(2);
return;
}

obj.down = false;
obj.gotoAndStop(1);


}

function normal()
{
for (var __reg2 in arr)
{
this[arr[__reg2]].down = false;
this[arr[__reg2]].gotoAndStop(1);
}

}

arr = ["b1", "b2", "b3", "b4", "b5"];
for (var i in arr)
{
this[arr[i]].stop();
this[arr[i]].down = false;



b1.onRelease = function ()
{

textmc = _root.tf.attachMovie("text1", "text1", _root.getNextHighestDepth(), {_x:20, _y:20});

relese(this);
}


b2.onRelease = function ()
{

textmc = _root.tf.attachMovie("text2", "text2", _root.getNextHighestDepth(), {_x:20, _y:20});

relese(this);
}
;


b3.onRelease = function ()
{
textmc = _root.tf.attachMovie("text3", "text3", _root.getNextHighestDepth(), {_x:20, _y:20});

relese(this);
}
;

}


Здесь все работает прекрасно, т.к. кнопки находятся здесь же, в этом мувике.

Ну возникла необходимость сделать в презенташке еще одно меню, с теми же кнопками, и вот задача, сделать так чтоб в этом втором меню, нажимая на кнопки, также загружался нужный текст, и главное, чтоб кнопки вели себя так же. Т.е. те же кнопки и в первом и втором меню, при нажатии на любую кнопку из этих меню "загорались" и "потухали" при нажатии на другую кнопку. Вот код, которым пытаюсь сделать второе меню, прописал путь к первому меню, чтоб реагировали одинаково на нажатие... что нужно дописать или поменять? сломал голову...
function relese(obj)
{
if (!obj.down)
{
normal();
obj.down = true;
_root.obj_mc.b1.gotoAndStop(2);
return;

}


obj.down = false;
_root.obj_mc.b1.gotoAndStop(1);


}

function normal()
{
for (var __reg2 in arr)
{
this[arr[__reg2]].down = false;
this[arr[__reg2]].gotoAndStop(1);
}

}





arr = ["b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "b9", "b10", "b11", "b12", "b13", "b14", "b15", "b16", "b17", "b18", "b19", "b20", "b21"];
for (var i in arr)
{
this[arr[i]].stop();
this[arr[i]].down = false;




//--------------------

s1.onRelease = function ()
{

textmc = _root.tf.attachMovie("text1", "text1", _root.getNextHighestDepth(), {_x:20, _y:20});

relese(this);
}







s2.onRelease = function ()
{

textmc = _root.tf.attachMovie("text2", "text2", _root.getNextHighestDepth(), {_x:20, _y:20});

relese(this);
}
;





s3.onRelease = function ()
{
textmc = _root.tf.attachMovie("text3", "text3", _root.getNextHighestDepth(), {_x:20, _y:20});

relese(this);
}
;





s4.onRelease = function ()
{
textmc = _root.tf.attachMovie("text4", "text4", _root.getNextHighestDepth(), {_x:20, _y:20});

relese(this);
}
;





s5.onRelease = function ()
{
textmc = _root.tf.attachMovie("text5", "text5", _root.getNextHighestDepth(), {_x:20, _y:20});

relese(this);
}
;
}

Подскажите пожалуйста, что не так
Объяснил наверное ужасно...

Seroy
08.04.2010, 23:44
Не уверен, что это то самое, что нужно в вашем случае - с презентациями во флеше особо дел не имел. Но - может на мысль наведет: реакция кнопок в swf обсуждалась тут (http://www.flasher.ru/forum/showthread.php?t=138000).

morda_
09.04.2010, 13:06
Не уверен, что это то самое, что нужно в вашем случае - с презентациями во флеше особо дел не имел. Но - может на мысль наведет: реакция кнопок в swf обсуждалась тут (http://www.flasher.ru/forum/showthread.php?t=138000).

Да! Это вполне подошло! Спасибо!