Показать сообщение отдельно
Старый 03.06.2002, 10:39
Акакий Акакиевич вне форума Посмотреть профиль Отправить личное сообщение для Акакий Акакиевич Найти все сообщения от Акакий Акакиевич
  № 1  
Акакий Акакиевич
 
Аватар для Акакий Акакиевич

Регистрация: Nov 2001
Адрес: Шинель
Сообщений: 99
По умолчанию Оптимальное размещение клипов в стеке (Flash5).

ЗАДАЧА: создать несколько mc в виде квадрата 20х20, в котором параметры (например цвет или прозрачность) каждого пиксела можно менять динамически, в зависимости от поставленных задач, т.е. каждый пиксел сам является mc. Этакий змулятор .bmp-файла. Всё это работать должно в такой последовательности: при первой загрузке, из постороннего приложения во Flash поступает описание 30-ти таких mc, Flash их генерит, а при последующих запуках Flash уже не нуждается в описании каждого пиксела, ему нужно те сгенерённые 30 mc.
РЕШЕНИЕ1: приаттачить в клип square 400 mc размером 1х1, каждому через цикл for присвоить, используя инкрементирующеюся переменную, имена от square1 …до… square400 и обращаться к методам каждого mc в зависимости от поставленных задач.
НЕДОСТАТКИ РЕШЕНИЯ1: так как таких mc-квадратов размером 20х20 нужно иметь на экране единовременно порядка 30 штук, то арифметика проста: 30*20*20+30=12030 mc на рабочем столе, что наверняка приведёт к переполнению стека и программа будет «зависать».
РЕШЕНИЕ2: вместо attach использовать load с тем же результатом (кстати, благо это заодно, - объясните если не трудно разницу между этими методами, какой из них менее ресурсоёмкий?).
НЕДОСТАТКИ РЕШЕНИЯ2: те же, что и в решениии1.
ГИПОТЕЗА: а нет ли во Flash такой возможности, чтобы загрузить 400 mc в один, задать каждому новые свойства и после этого программно сделать аналог Ctrl+B (Break_Apart) над ними в теле главного mc, чтобы в стеке остался 1 mc вместо 401? А вдруг есть неописанная и непофиксенная возможность сохранения mc программно из прожектора в .swf (есть же save переменных в файл, хотя нигде не описано, или Key.isDown(2), например)?
ВОПРОС: поправьте меня если я высказал ошибочные предположения выше и подскажите пожалуйста оптимальное решение такой задачи (если таковое имеется вообще:-)).
Заранее благодарю, Ваш Акакий.