PDA

Просмотр полной версии : кнопки в муви-клипе (особый случай! ;))


ogonek
13.07.2008, 18:27
спасибо Wolsh за помощь с прокруткой)

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

есть: мувик, в нем два кадра, в каждом кадре - по кнопке (2 вида одной и той же кнопки fullscreen/unfullscreen) внутрениие объекты могут быть кнопками или мувиками, не важно

на каждом кадре написанно:

stop();
this.onRelease = function()
{
if (_global.isFullscreen)
{
this.gotoAndPlay(2);
fscommand("fullscreen", false);
_global.isFullscreen = 0;
}
else
{
this.gotoAndPlay(1);
fscommand("fullscreen", true);
_global.isFullscreen = 1;
}
}


в таком виде кнопка меняет вид и выполняет свои функции по он релиз, но на ролл овер сами кнопки не меняют цвет (вне зависимости от того, кнопки внутри или ролики с кодом на роллОвер (код верный)

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

пробовала обращаться через this._parent или везде -через _root.name_mc ....

так ничего и не получилось. была полностью нерабочая кнопка и кнопка мигающая всеми 4 видами.


помогите, пожалуйста, разобраться!!

Wolsh
13.07.2008, 20:15
А такой вариант Вам не подойдет?
http://flasher.ru/forum/showpost.php?p=741126&postcount=28

ogonek
14.07.2008, 02:06
ох, спасибо.
я попробовала, конечно.

но у вас пример когда реакция на ролловерпроисходит на совершенно на отдельном мувике.

я решила все сверху на ролик повесить снова попробовать. ролик button в нем два на двух кадрах

но стала ругаться программа уже на такой код

stop();
button.onRelease = function()
{
if (_global.isFullscreen)
{
button.gotoAndPlay(2);
fscommand("fullscreen", false);
_global.isFullscreen = 0;
}
else
{
button.gotoAndPlay(1);
fscommand("fullscreen", true);
_global.isFullscreen = 1;
}
}

ей перестала нравится переменная _global и что-то ее про фскомманд пишет. я в растерянности.

соответственно, реакцию на роллОвер пока не писала потому что она тоже от этого зависит.

Wolsh
14.07.2008, 02:31
А давайте Вы лучше исходник выложите))) А то так только гадать можно.
Из советов - не стоит вообще в данном случае в _global ничего сохранять. Вполне подойдет сам мувик button. Т.е. вместо _global можно смело использовать this.
Также плохая практика использовать вместо стандартных булевых величин цифры. Пока переменные не типизированы, это проходит, но прививает плохую привычку, и когда-нибудь Вы об это споткнетесь. Кроме того, Ваш ключ isFullscreen можно будет использовать прямо в коде fscommand, примерно так:
fscommand("fullscreen", isFullscreen);если Вы будете присваивать ему честные значения true и false.
Еще меня смущает Ваше gotoAndPlay();
У Вас же два кадра... со стопами. Почему не gotoAndStop(); ?
Давайте исходник посмотрим!

ogonek
14.07.2008, 03:51
разобралась, почему ругался - новый документ создала для примера с as3.

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

прикрепляю как было и как стало варианты.

Wolsh
15.07.2008, 01:11
Ну можно и так, только на мой взгляд не очень рационально))
Чем два клипа лучше одного?)))
Вот Ваш исходник.

ogonek
15.07.2008, 02:55
о, спасибо большое!!

я пока просто мало про функции знаю, сложно мне с ними...