Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Вопрос по кнопкам. Подскажите пожалуйста. (http://www.flasher.ru/forum/showthread.php?t=115401)

CkyBe 28.08.2008 17:28

Вопрос по кнопкам. Подскажите пожалуйста.
 
Здравствуйте! Хотел бы узнать у знающих:

Имеется кнопка и группа объектов, относящихся к этой кнопке.

Подскажите пожалуйста как правильно написать Action, чтобы при нажатии на кнопку объекты, относящиеся к этой кнопке гасли. А при нажатии на нее еще раз - появлялись.

Флеш только начинаю изучать, поэтому не во все врубаюсь пока что.

Спасибо!
Артем

MrPoma 28.08.2008 17:43

Что такое объекты, относящиеся к кнопке?

Мечтатель 28.08.2008 17:44

Допустим под объектами Вы понимаете "мувики", тогда посмотрите следующий код:
Код:

this.button.onPress=function(){// Когда нажимаете кнопку (пусть ей будет присвоено имя "button") срабатывает функция,
        if(my_mc._alpha!=0){//проверяет прозрачность вашего объекта (назовем его "my_mc"), если он не прозрачен, тогда,
        my_mc._alpha=0;// делаем его прозрачным
        trace(my_mc._alpha)
}else{
        my_mc._alpha=100;// или же наоборот))
}
}


CkyBe 28.08.2008 18:53

2Мечтатель:

вставил код

Код:

this.printing_b.onPress=function(){// Когда нажимаете кнопку (пусть ей будет присвоено имя "button") срабатывает функция,
        if(printing_m._alpha!=0){//проверяет прозрачность вашего объекта (назовем его "my_mc"), если он не прозрачен, тогда,
        printing_m._alpha=0;// делаем его прозрачным
        trace(printing_m._alpha)
}else{
        printing_m._alpha=100;// или же наоборот))
}
}

где printing_b - это кнопка, а printing_m - это группа объектов, которой должна управлять кнопка (включать/отключать)

выдает ошибку в первой строке. может быть я что-то неправильно сделал?

спасибо!

CkyBe 28.08.2008 18:53

код вставил на кнопку printing_b

MrPoma 28.08.2008 18:54

Надо в кадр.

CkyBe 28.08.2008 18:57

2MrPoma: нет, на кнопку

там кнопка (printing_b) должна управлять мувиком (printing_m) включать или выключать его (делать так чтобы он исчезал и им нельзя было управлять)

MrPoma 28.08.2008 18:58

Это код надо писать в кадре, потому что иначе не будет работать.

CkyBe 28.08.2008 19:00

не понимаю... а в какой кадр? там где эта кнопка и мувик?

MrPoma 28.08.2008 19:03

Именно.

CkyBe 28.08.2008 19:10

поставил но при запуске ролика, ничего не происходит при нажатии на кнопку

http://************/uploads/080828/vGF328ERYR.png

вот ссылка с картинкой, просто чтобы обрисовать картину )

у нас имеется поле с квадратиками (всего 111 штук)
есть кнопка printing, при нажатии которой определенное количество квадратиков должно исчезнуть (в данном случае 65 (они сгрупированы), а кнопка погаснуть до тускло серой, при нажатии на тускло серую все должно вернуться обратно

также с каждой из кнопок меню (package, logotypes, stands, web и т.д.)

Мечтатель 28.08.2008 22:23

CkyBe, НИКОГДА НЕ ПИШИТЕ КОД в теле экземпляров MovieClip'ов (это и к кнопкам и ко всему прочему относится) так как этот метод децентрализирует код и приносит больше вреда чем пользы, если Вам так удобно писать - отучайте себя от этого! Актуальность этот метод да-а-авно потерял, сейчас чтобы выполнить какие либо действия над "мувиком" необязательно вешать код на клип.

Далее, как у Вас "поле с квадратиками" создано? Программно, или просто отрисованы квадраты?

Код я повторяю тотже самый практически!
Код:

button.onPress=function(){// Когда нажимаете кнопку (пусть ей будет присвоено имя "button") срабатывает функция,
        if(my_mc._alpha!=0){//проверяет прозрачность вашего объекта (назовем его "my_mc"), если он не прозрачен, тогда,
        my_mc._alpha=0;// делаем его прозрачным
        button._alpha=40;//меняем значение прозрачности кнопки.
}else{
          button._alpha=100;
        my_mc._alpha=100;// или же наоборот))
}
}

P.S. Если хотитие, чтобы кнопка "гасла" плавно используйте интервалы (setInterval)

Мечтатель 28.08.2008 22:31

Цитата:

Сообщение от CkyBe (Сообщение 760870)
там кнопка (printing_b) должна управлять мувиком (printing_m) включать или выключать его (делать так чтобы он исчезал и им нельзя было управлять)

Сначало Вы писали, чтобы "группа объектов" просто исчезала... Если Вы хотите, чтобы MovieClip при нажатии кнопки не просто исчезал, а переставал реагировать на события (становился неактивным) работайте не со свойством _alpha, а со свойством _visible. Последнее может принимать значение либо true, либо false. По умолчанию используется - true, т.е. MovieClip виден и активен.

CkyBe 28.08.2008 23:15

Спасибо за совет! не буду)

поле с квадратиками нарисовал сам в иллюстраторе (векторная графика)

код испробую завтра с утра так как сейчас я на другой машине.

тоесть код получается следующий?
Код:

button.onPress=function(){// Когда нажимаете кнопку (пусть ей будет присвоено имя "button") срабатывает функция,
        if(my_mc._visible=true){//проверяет прозрачность вашего объекта (назовем его "my_mc"), если он не прозрачен, тогда,
        my_mc._visible=false;// делаем его прозрачным
}

да-да именно переставал реагировать на события.. сорри непрально описал

Wolsh 29.08.2008 00:13

Я бы сказал проще
Код:

button.onPress=function(){
        my_mc._visible=!my_mc._visible;
}


Мечтатель 29.08.2008 05:58

Цитата:

Сообщение от CkyBe (Сообщение 760956)

тоесть код получается следующий?
Код:

button.onPress=function(){
        if(my_mc._visible=true){
        my_mc._visible=false;
}


Ваш код работать НЕ будет, так как Вы уже в нем допустили ошибку. Обратите внимание на вторую строчку кода, в условии Вы присваиваиваете значение _visible, а не сравниваете его с текущим значением.

Код:

if(my_mc._visible=true)//НЕПРАВИЛЬНО.
Код:

if(my_mc._visible==true)//ВЕРНО!

CkyBe 29.08.2008 13:39

хмм попробовал со всеми поправками.. но ничего не происходит (кнопку видит но при нажатии ничего не происходит)

код следующий:

Код:

printing_b.onPress = function() {
}
if(printing_m._visible==true)
        {
        printing_m._visible = false;
}


Wolsh 29.08.2008 14:50

Какойто короткий у Вас обработчик получился)))
Код:

printing_b.onPress = function() {}
Может всетаки попробуете предложенные скрипты без своих нововведений типа перестановки скобок?

CkyBe 29.08.2008 14:58

Тогда если оставить код таким:
Код:

printing_b.onPress=function() {
if(printing_m._visible==true){
        printing_m._visible=false;
}

выдает ошибку в 1 и 4 строчках

1. Statement block must be terminated by '}'
4. Syntax error.

Wolsh 29.08.2008 15:28

Ну так закрывающую скобку-то поставьте) После последней - еще одну, если на пальцах.

CkyBe 29.08.2008 16:22

все сделал но все равно не срабатывает функция...
выкладываю скрин с места событий ) http://************/uploads/080829/q8ULx9iSrY.jpg
Код:

printing_b.onPress=function() {
        if(printing_m._visible==true){
        printing_m._visible=false;
}
}


MrPoma 29.08.2008 16:46

Код:

btn.onPress = function(){
        if(mc._visible){
                mc._visible = false;
        }else{
                mc._visible = true;
        }
}


CkyBe 29.08.2008 17:06

угу спасибо большое, но опять никаких изменений
Код:

printing_b.onPress = function() {
        if(printing_m._visible) {
                printing_m._visible = false;
        }else{
                printing_m._visible = true;
        }
}


MrPoma 29.08.2008 17:35

Не мучайте этот код — он рабочий. Что говорит trace()?

Мечтатель 29.08.2008 17:36

Вложений: 1
Ой-ёй-ёй((( CkyBe, я Вам выкладываю исходник на основе кода MrProma - так, как он более оптимизированный нежели мой. Посмотрите все работает.
Круглишок - это MovieClip (mc)
Прямоугольник - это есть кнопка (btn)

CkyBe 29.08.2008 18:09

спасибо всем большое!!! вроде разобрался, с вашей помощью ))) а что такое trace ()?

Мечтатель 29.08.2008 19:08

trace - это такое выражение, которое помогает тестить скрипт проекта, выводя значение выражения в панели output.
Цитата:

printing_b.onPress = function() {
if(printing_m._visible) {
printing_m._visible = false;
trace ("This moviecip is hide");
}else{
printing_m._visible = true;
trace ("Now you can see this movieclip");
}
}

Wolsh 29.08.2008 20:41

Мечтатель, из Вашего поста человек поймет что можно какойто текст выводить) Интересный ответ на вопрос "А что там выводит trace() ?" )))))
Трейсить можно текущие для этого места значения переменных, просто метки что выполнение скрипта дошло до этого места и функция была вызвана, типы переменных и вообще все что можно вычислить.
Код:

button.onPress=function(){
        trace("Нажали на кнопку "+this);
        trace("Клип был видим? - "+printing_m._visible)
    printing_m._visible=!printing_m._visible;
        trace("Клип теперь видим? - "+printing_m._visible+"\n----------------------")
}



Часовой пояс GMT +4, время: 03:55.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.