Просмотр полной версии : Деактивация всего содержимого заданного клмпа
chekanios
08.10.2009, 15:53
Добрый день!
У меня есть большой список кнопок, заполоняющий почти всю рабочую область. При нажатии на одну из них открывается новое окно (на деле аттачится клип, либо переводится существующий на нужный кадр), в котором выводятся определенные параметры переданные нажатой кнопкой. В этом новом окне(клипе) есть тоже свои кнопки.
Все бы хорошо, но из под созданного клипа активны кнопки основного клипа, что не допустимо. В текущей версии все кнопки заднего плана деактивируются циклическим обходом их параметра enabled. При каждом вызове такого цикла проходит большая нагрузка на память. А такие окна пользователь открывает часто, и создается эффект тормозов.
Вопрос: можно ли как нибудь деактивировать все содержание заданного клипа одной командой. Переход его на другой кадр с такими же нарисованными "кнопками" не допускается: в клипе заднего плана много интерактивного содержания, перерисовывать которое программно еще раз не рационально.
Спасибо. С уважением, Антон.
lexa2000lexa
08.10.2009, 16:05
ставить поверх ваших кнопак прозрачную клип кнопку с выключенным курсором.
Ага. Автор, посмотрите, в этой теме я пример выкладывал, там так и сделано.
http://www.flasher.ru/forum/showthread.php?t=129312
chekanios
08.10.2009, 16:14
А не получится ли, что изменение альфы кнопки+сама кнопка будет больше загружасть стек, чем цикл обхода?...
Ну не меняйте альфу вообще, там это для красоты сделано, ограничитесь visible.
А вообще то - ну какой там перегруз от разовой работы с одним объектом?
chekanios
08.10.2009, 16:25
да в том-то и дело, что не разовой. за минуту пользователь может n раз это окно вызвать с разных кнопок. реакция молниеносная должна быть
Добавлено через 2 минуты
Кстати, с _visible эта фишка не прокатывает. Визибл убирает кнопку из рабочий области=>и клики отлавливать нечему. А альфа кнопку оставляет
Добавлено через 5 минут
Проверил: с добавлением и убиранием прозрачной кнопки над основным клипом и правда быстрее ,чем с циклом обхода всех компонентов.
Но может все таки есть более рациональное готовое решение задачи?..
Мне тоже казалось раньше, что это не есть самое рациональное.
Конечно, "правильное" решение - это отключать все кнопки по одному, но "правильно" не всегда тождественно "рациональному".
В конечном итоге, в сухом остатке важно верное соотношение факторов:
- скорости разработки
- получения нужного эффекта, и при этом без багов в какой-либо части проекта
- переносимость решения
Степень рациональности зиждется на этом.
Оставьте так. Если какие-то проблемы возникнут в дальнейшем, вернетесь к вопросу... Ну я бы так поступил.
PS. Да, вообще-то я имел ввиду там, в коде оставить только _visible для блокирующего мувика-маски. Пока блокировании ее видеть не обязательно, как в примере. Там сейчас она появляется как белесая вуаль, для красоты (_alpha = 50), а можно просто ей оставить альфу = 0, этого достаточно будет для ее работы.
Волгоградец
08.10.2009, 16:50
Держать все кнопки в контейнере.
На контейнер вешать пустой обработчик - onPress, например.
chekanios
08.10.2009, 16:55
угу. все тот же вариант. Всем спасибо! Всем откланялся и смерился с ним
Держать все кнопки в контейнере.
На контейнер вешать пустой обработчик - onPress, например.
То же самое, только нужны дополнительные телодвижения в виде складывания активных элементов в отдельный контейнер. То есть усложнение структуры, переписывание путей для кнопок и т.п. Не "рационально" :)
Добавлено через 3 минуты
[Удобство для потребителя]=1/[Удобство для создателя]
Если по-простому, то он имел ввиду - для достижения максимального удобства при работе С интерфейсом, нужно НАД ним изрядно попотеть.
Однако, учитель не учел то, что сейсчас зачастую важен достаточно быстрый результат. Нужно двигаться дальше, горят сроки ит.п.
Это раз. Два - пользователь не видит начинку, раз работает - значит хорошо. На досуге можно и оптимизировать код - это два.
И еще. Формула перестает работать, когда разработчик профессионально матереет, и оптимальные решения у него уже есть в голове часто еще до постановки задачи. Это три.
К слову сказать, у меня есть черта - вылизывать все до полного опупения и наворачивать удобства для юзера. Это вредит результативности разработки. Нужна золотая середина.
chekanios
08.10.2009, 17:09
Что он имел ввиду я понял. Эту формулу можно применить к любому производсвенному процессу. Понятно, что вместо единицы в числителе коэффициент должен стоять. А формула не перестает работать, а изменяется лишь этот коэффициент (чем круче опыт, тем больше он стремится к бесконечности)
p.s. Хорошая черта.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.