PDA

Просмотр полной версии : Оптимальное размещение клипов в стеке (Flash5).


Акакий Акакиевич
03.06.2002, 10:29
ЗАДАЧА: создать несколько 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), например)?
ВОПРОС: поправьте меня если я высказал ошибочные предположения выше и подскажите пожалуйста оптимальное решение такой задачи (если таковое имеется вообще:-)).
Заранее благодарю, Ваш Акакий.

greyshaman
03.06.2002, 11:13
Для начала подсчитай количество информации которую тебе необходимо передать для генерации одной сцены. А потом подумай Вот это я извращенец!!!

DeliMIter
03.06.2002, 21:43
Вот это он извращенец!!! :)))))))

2Акакий Акакиевич
Пиши на бейсике....

Акакий Акакиевич
04.06.2002, 00:39
Не, ну ваще! все такие умные, мля, аж оторопь пробирает. Самое главное: не спросил же типа "Как вам, парни кажется? не извращенец ли я?". Вот вы бы взяли и подсказали оптимальное решение, я сам понимаю, что такое построение мягко говоря "не катит", потому и спросил. Тьфу, блин!

Nox Noctis
04.06.2002, 01:12
присоединяюсь к высказываниям шамана и делимитера :D

(ты мыкс не видел еще, да ?)

Акакий Акакиевич
04.06.2002, 01:33
МА-ЛА-ДЕЦ!

Nox Noctis
04.06.2002, 01:51
значит так.
не видел мыкс - так и скажи...
ну, значит хорошо бы его увидеть... потому что там это делается легким движением левого уха...

если ты спрашиваешь, как сделать несколько тысяч клипов и чтоб все не умерло - то это не к нам, а к бригаде программистов макромедии :o

Акакий Акакиевич
04.06.2002, 02:04
Я не видел мыкс. Расскажи, если не трудно.

coil
04.06.2002, 08:07
почитай про объекты флэш(это про те которые сам создаеш ,а не встроенные)
потом кое што про массивы
и полегчает
это и есть оптимальный вариант

greyshaman
04.06.2002, 10:59
Ты сам просил:
Оригинал написал(а) Акакий Акакиевич
[B ВОПРОС: поправьте меня если я высказал ошибочные предположения выше и подскажите пожалуйста оптимальное решение такой задачи (если таковое имеется вообще:-)).
Заранее благодарю, Ваш Акакий. [/B]

Ты никак не хочешь понять что, 320*200*7=448k плюс на каждый изменяемый объект как последствие 3+3+7 байт, это издевательство над личностью и статья тому кто тебя прЕбьЁт???? :D :D . Не думай, пока не научишся мыслить разумными критериями, и используй JPEG. Сгенерировать его програмно и предать, если тебе так уж необходимо, задача из тривиальных.

Best regards
Grey

Акакий Акакиевич
04.06.2002, 15:40
Шаман, я с Вами согласен насчет JPG, но проблема в том, что MX я ещё не видел, а работать приходится в Flash5, извините, что не сказал об этом сразу.

Nox Noctis
04.06.2002, 18:31
тогда это многое объясняет :D

в мыксе есть графические функции - динамическое создание графики (прямые и кривые линии + заливки (солид, радиальный и линейный градиент)).

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

greyshaman
04.06.2002, 18:52
2 акакий: Получается что тебя заклинило на этом решении и при этом ты не хочешь расклиниваться :D :D :D, либо излогай, чё ты хочешь вымудрить, либо забудь всё что навыдумывал и подойди к решению с нуля, а то уж больно кривая у тебя дорожка или прямая извилина :p трудно определиться.

Акакий Акакиевич
04.06.2002, 21:21
Значит необходимо срочно искать МХ:). Честно скажу – при первом знакомстве с Flash5 – я искал в нём судорожно функции, которые Вы описали (построение и заливка).
______________
Шаман, как сказал детский поэт: «У меня секретов нет, - слушайте детишки!», мыслилось мне следующее: Delph-овая часть программы преобразует jpg в bmp и передаёт мне описание попиксельно:). Идея, конечно, пугающая. Но всё можно простить, ежели понять, - поймите и Вы меня – неделя очень уж напряженная выдалась. А раз МХ, мало того что подгружает jpg, так ещё и рисует программно, то решение гораздо проще видится, буду ждать, когда к нам в Мухосранск привезут МХ:)

С уважением, Акакий.

DeliMIter
04.06.2002, 21:54
Унесите меня...

JPEG -> Delphi -> BMP -> Flash -> Bitmap Pixel Array

...ой ногами вперед...

greyshaman
05.06.2002, 10:25
Оригинал написал(а) Акакий Акакиевич
Идея, конечно, пугающая. С уважением, Акакий.

Ты себе слишком льстиш, не пугающая а идиотская, точнее её полное отсутсвие. Маленький секрет, SDK для swf лежит на macromedia который год, ждёт когда ты его забереш. Не дождётся наверное ;)