Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Пара вопросов
Flash Zone Forum > Macromedia Flash > Общие вопросы
Nik
Здравствуйте. У меня такая просьба: есть 2 кнопки. 1-я изначально невидима. Надо, чтобы при нажатии на др. кнопку, первая появлялась, а при повторном нажатии на другую - скрывалась. В книжке нашел похожий код, переделал немного - все работает. Но вот только я логику понять не могу. Если не трудо, объясните ламеру, как этот код работает.

but2._visible=0;
but1.onPress = function () {
if(i) {
but2._visible=0;
i=false
}
else {
but2._visible=1;
i=true;
}
};

И второй вопрос: есть несколько клипов. Надо, чтобы по окончании одного из них все остальные останавливались. Я в последнем кадре этого клипа задаю абсолютную адресацию _root.stop(), а клипы все равно играют. Помогите разобраться.
Заранее благодарен.
tiHo
Цитата
Здравствуйте.


дарова smile.gif

отвечаю на 1-й вопрос:

можно сделать чють более компактно:

Код
b2._visible = 0;
b1.onPress = function()
{
    b2._visible == 0 ? b2._visible = 1 : b2._visible = 0;
};


сдесь конструкуция ? : означает: если видимость кнопки2 равна 0, то сделать ее равной 1, или если она равна 1 сделать ее равной 0.

этоже выражение можно записать так:

Код
b2._visible = 0;
b1.onPress = function()
{
    if (b2._visible == 0)
    {
        b2._visible = 1;
    }
    else
    {
        b2._visible = 0;
    }
};


но как видно первый вариант более стильный и компактный (как я считаю) smile.gif

надеюсь с первым вопросом все ясно. переходим ко второму:

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

напиши на последнем кадре того клипа при проигровании последнеко кадра которого должны остановится все нужные тебе клипы:

(при условии что клипы которые нужно остановить имеют имена clip1,clip2,clip3; естественно)

Код
_root.clip1.stop();
_root.clip2.stop();
_root.clip3.stop();


вот вродебы подробно разложил biggrin.gif



DJKOT
блин... опять семерочные коды... вообще-то насколько я помню, изменять видимость можно только в мувиках.
tiHo
Цитата(DJKOT @ 19.02.2007 - 15:08) *

блин... опять семерочные коды...


onPress поддерживается с Flash Player 6
_visible поддерживается с Flash Player 4
?: поддерживается с Flash Player 4

чтото ничего семерочного невижу biggrin.gif

Цитата(DJKOT @ 19.02.2007 - 15:08) *

вообще-то насколько я помню, изменять видимость можно только в мувиках.


хочеш сказать что только

on(press)
{
this._visible=[false/true]?
}


прально я понял?

в любом случае то что я написал, сначала проверил на себе. smile.gif
Nik
Спасибо большое! Попробую дома.
tiHo
наздоровье
MustLive
Nik

Менять видимость объекта можно различные алгоритмами (хотя результат их будет идентичный). Можно как ты писал (что в книжке нашёл), можно как tiHo (2 варианта). Причём первый вариант Сани с конструкцией "? :" наиболее лаконичный wink.gif. Но все приведённые алгоритмы решают поставленную задачу.

Цитата
вообще-то насколько я помню, изменять видимость можно только в мувиках.

Саня, DJKOT писал о том, что видимость (само свойство) можно менять только в мувиклипах.

Это совсем не так. Свойство видимости можно изменять у всех именованых объектов, у которых оно присутствует - т.е. у таких объектов флеша как баттон, мувиклип. Так что спокойно изменяйте значение _visible у всех необходимых объектов.
Rohan
цифры там где они не нужны - зло!
Код
dynamic intrinsic class MovieClip
{
        .........................
    var _visible:Boolean;
        .........................
}
tiHo
ага! ето я спорченый уже - привык! но какой пример подаю подростающему поколению biggrin.gif

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

Код
b2._visible = false;
b1.onPress = function()
{
    b2._visible==false ? b2._visible = true : b2._visible = false;
};


или как бы записал я:

Код
b2._visible = false;
b1.onPress = function()
{
    !b2._visible ? b2._visible = true : b2._visible = false;
};
Русская версия IP.Board © 2001-2008 IPS, Inc.