Форум 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=130915)

chekanios 08.10.2009 15:53

Деактивация всего содержимого заданного клмпа
 
Добрый день!
У меня есть большой список кнопок, заполоняющий почти всю рабочую область. При нажатии на одну из них открывается новое окно (на деле аттачится клип, либо переводится существующий на нужный кадр), в котором выводятся определенные параметры переданные нажатой кнопкой. В этом новом окне(клипе) есть тоже свои кнопки.

Все бы хорошо, но из под созданного клипа активны кнопки основного клипа, что не допустимо. В текущей версии все кнопки заднего плана деактивируются циклическим обходом их параметра enabled. При каждом вызове такого цикла проходит большая нагрузка на память. А такие окна пользователь открывает часто, и создается эффект тормозов.

Вопрос: можно ли как нибудь деактивировать все содержание заданного клипа одной командой. Переход его на другой кадр с такими же нарисованными "кнопками" не допускается: в клипе заднего плана много интерактивного содержания, перерисовывать которое программно еще раз не рационально.

Спасибо. С уважением, Антон.

lexa2000lexa 08.10.2009 16:05

ставить поверх ваших кнопак прозрачную клип кнопку с выключенным курсором.

mooncar 08.10.2009 16:06

Ага. Автор, посмотрите, в этой теме я пример выкладывал, там так и сделано.
http://www.flasher.ru/forum/showthread.php?t=129312

chekanios 08.10.2009 16:14

А не получится ли, что изменение альфы кнопки+сама кнопка будет больше загружасть стек, чем цикл обхода?...

mooncar 08.10.2009 16:17

Ну не меняйте альфу вообще, там это для красоты сделано, ограничитесь visible.
А вообще то - ну какой там перегруз от разовой работы с одним объектом?

chekanios 08.10.2009 16:25

да в том-то и дело, что не разовой. за минуту пользователь может n раз это окно вызвать с разных кнопок. реакция молниеносная должна быть

Добавлено через 2 минуты
Кстати, с _visible эта фишка не прокатывает. Визибл убирает кнопку из рабочий области=>и клики отлавливать нечему. А альфа кнопку оставляет

Добавлено через 5 минут
Проверил: с добавлением и убиранием прозрачной кнопки над основным клипом и правда быстрее ,чем с циклом обхода всех компонентов.
Но может все таки есть более рациональное готовое решение задачи?..

mooncar 08.10.2009 16:46

Мне тоже казалось раньше, что это не есть самое рациональное.
Конечно, "правильное" решение - это отключать все кнопки по одному, но "правильно" не всегда тождественно "рациональному".
В конечном итоге, в сухом остатке важно верное соотношение факторов:
- скорости разработки
- получения нужного эффекта, и при этом без багов в какой-либо части проекта
- переносимость решения
Степень рациональности зиждется на этом.
Оставьте так. Если какие-то проблемы возникнут в дальнейшем, вернетесь к вопросу... Ну я бы так поступил.

PS. Да, вообще-то я имел ввиду там, в коде оставить только _visible для блокирующего мувика-маски. Пока блокировании ее видеть не обязательно, как в примере. Там сейчас она появляется как белесая вуаль, для красоты (_alpha = 50), а можно просто ей оставить альфу = 0, этого достаточно будет для ее работы.

Волгоградец 08.10.2009 16:50

Держать все кнопки в контейнере.
На контейнер вешать пустой обработчик - onPress, например.

chekanios 08.10.2009 16:55

угу. все тот же вариант. Всем спасибо! Всем откланялся и смерился с ним

mooncar 08.10.2009 16:55

Цитата:

Сообщение от Волгоградец (Сообщение 856364)
Держать все кнопки в контейнере.
На контейнер вешать пустой обработчик - onPress, например.

То же самое, только нужны дополнительные телодвижения в виде складывания активных элементов в отдельный контейнер. То есть усложнение структуры, переписывание путей для кнопок и т.п. Не "рационально" :)

Добавлено через 3 минуты
Цитата:

Сообщение от chekanios (Сообщение 856367)
[Удобство для потребителя]=1/[Удобство для создателя]

Если по-простому, то он имел ввиду - для достижения максимального удобства при работе С интерфейсом, нужно НАД ним изрядно попотеть.
Однако, учитель не учел то, что сейсчас зачастую важен достаточно быстрый результат. Нужно двигаться дальше, горят сроки ит.п.
Это раз. Два - пользователь не видит начинку, раз работает - значит хорошо. На досуге можно и оптимизировать код - это два.
И еще. Формула перестает работать, когда разработчик профессионально матереет, и оптимальные решения у него уже есть в голове часто еще до постановки задачи. Это три.

К слову сказать, у меня есть черта - вылизывать все до полного опупения и наворачивать удобства для юзера. Это вредит результативности разработки. Нужна золотая середина.


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

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