PDA

Просмотр полной версии : как отключить кеширование изображений в FP


Marlin
24.03.2014, 08:00
Здравствуйте, появилась проблема, у меня на сцене много объектов, все они перетаскиваются, я беру один объект, начинаю таскать по сцене(идет обработка столкновений, высчитывается как объект должен "прилипнуть " к ближайшему объекту и прилипает к нему), и вот таскаю я его таскаю, и через секунд 5-10, он начинает вести себя как ластик - начинает стирать объекты, как будто он перерисовался в битмап (размером эдак 100х100), и некоторые объекты , и в некоторых объектах, которые касаются этой битмапы, пропадают внутренние спрайты. Но если стертый объект потом повернуть, внутренние объекты , которые были удалены, возвращаются на место. Что это может быть? Во флеше есть кеш графики? Плейер FP11 debug

Hauts
24.03.2014, 09:44
Marlin, покажите пример и код.

Как графика вставлена? Дисплейлист или стэйдж 3д? По вашему описанию вопросов больше, чем понимая, в чем может быть проблема.

Marlin
24.03.2014, 10:12
Как графика вставлена? Дисплейлист или стэйдж 3д?

все графика отрисована чарез графикс, многослойные объекты с фильтрами, все объекты в дисплейлисте.
Причем еще заметил такую закономерность, в течении секунд пяти все работает нормально, а потом толи FP что-то включает (может видя то, что он не успевает обрабатывать и графику и столкновения).

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

Hauts
24.03.2014, 10:51
Ну попробуйте корневым спрайтам или мувиклипам cacheAsBitmap поставить.

Скрин-то есть хоть?

Marlin
24.03.2014, 11:25
допустим вот
30632
тащим квадратный объект, он вырезает прямоугольник в двух соседних объектах.
В каждом объекте - 2 основных слоя, слой с желтым объектом, и слой с красными, так вот
этот квадратный объект вырезает только красные объекты, а желтые не трогает. И если потом желтый объект повернуть , красные объекты снова появляются

Ну попробуйте корневым спрайтам или мувиклипам cacheAsBitmap поставить.



если ставлю cacheAsBitmap - главному контейнеру, то вырезаться начинают и желтые объекты тоже.

и еще вопрос, а смена версии плейера(при компиляции) может помочь в данной ситуации? сейчас компилирую под 10

Marlin
28.03.2014, 08:19
ни у кого нет чтоли никаких предположений?? А можно как нибудь поиграться с настройками дебаг плейера?
Когда поворачиваю главный контейнер все объекты появляются на своих местах, значит плейер как-то кеширует объекты.. Подойдет любой костыльный вариант

опишу еше раз на всякий случай проблему:

есть три слоя (layer1, layer2, layer3), есть три кнопки (btn1,btn2,btn3), соответственно

при нажатии на кнопку допустим btn1, у layer1 - альфа устанавливается в 1, у двух других слоев в 0.2,
с другими кнопками аналогично.

в слое layer1 внутри есть два слоя : layer1.1 и layer1.2,


и при нажатии на кнопку btn 1 , и установки слою layer1 альфы = 1, из него пропадает внутренний слой - layer1.1.

затем, если повернуть оснойной контейнер, layer1.1 - появляется.

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

caseyryan
28.03.2014, 09:36
Подтверждаю, есть такой баг в FP. Сам сталкивался. Как обойти его нормально не нашел, но в моем случае мне помогла отрисовка его в BitmapData вместе со всеми фильтрами, и вместо самого объекта, помещал в дисплей лист Bitmap с этой BitmapData. Костыль конечно, но это работает

п.с. Я такой вариант не пробовал, но возможно поможет после перетаскивания, в обработчике отпускания мыши вызвать принудительную перерисовку экрана

function onMouseUp(e:MouseEvent):void {
e.updateAfterEvent();
}