PDA

Просмотр полной версии : происходит ли перерисовка объекта при visible=false


Aloran
29.04.2010, 17:11
происходит ли перерисовка объекта при visible=false

Волгоградец
29.04.2010, 17:31
Нет, не происходит.

kayn
29.04.2010, 17:31
Включаем: отображать область прорисовки. Убеждаемся, что нет. При работе с 3D, часто приходится отключать свойство visible, чтобы не перегружать карту.

Aloran
29.04.2010, 17:39
Замечательно. Т.е. достаточно скрыть объект не удаляя его со сцены.

orcpochta
29.04.2010, 17:47
если я правильно понимаю, то перерисовка видимого объекта происходит только в том случае, если видимая зона отображения, где он находится, каким-то образом изменилась (или он сам изменился)

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

kayn
29.04.2010, 18:04
Да, но если изменениям подвергается мув в который понатыкано изображений, то прорисовываться будут только те из них, у которых включено visible. У меня тут http://www.flasher.ru/forum/showthread.php?t=138863 работка которая на моем буке без этого замечательного свойства просто не работает.

orcpochta
29.04.2010, 18:09
еще раз - перерисовываются только видимые части экрана, подвергающиеся изменению

как у вас при visible=false может быть видим объект? никак, т.е. перерисовываться он не будет, т.е. о нем вообщ нет смысла разговаривать
более того, объект, закрытый другим непрозрачным объектом тоже, вроде, не будет перерисовываться, хоть и visible у него будет true - как-то так, если не наврал

Zebestov
29.04.2010, 18:12
если я правильно понимаю, то перерисовка видимого объекта происходит только в том случае, если видимая зона отображения, где он находится, каким-то образом изменилась (или он сам изменился)

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

Хм. Ну я реально не знаю, так ли грамотно обстоят дела во Flash. У адоби не хватило алгоритмического мышления, чтобы программа After Effects дистигнув фрагмента, где ничего(!) не меняется, просто брала уже просчитанный предыдущий кадр. Казалось бы — не то что зоны отображения там просматривать =) а тупо увидеть, что ни один ключ ни в одном слое не поменялся =) (по крайне мере так было до недавнего времени)

orcpochta
29.04.2010, 18:14
ну не приснилось же мне это)))
где-то вычитал - или в Муке или в адобовской справке)))

Zebestov
29.04.2010, 18:17
та не — я только "за", если так.

kayn
29.04.2010, 18:26
В After Effects CS4, а я с ним уже год работаю, не изменяющиеся объекты проигрывающая головка проходит много быстрее чем анимированные. Причем, если свойство opacity=0, то и After Effects делает вид, что объекта на сцене нет.

Zebestov
29.04.2010, 18:37
В After Effects CS4, а я с ним уже год работаю, не изменяющиеся объекты проигрывающая головка проходит много быстрее чем анимированные. Причем, если свойство opacity=0, то и After Effects делает вид, что объекта на сцене нет.

ну молодцы, что исправили =) хвалю!

iflamberg
29.04.2010, 18:53
всё круто, только enterFrame для скрытого кадра продолжает отрабатывать, если в мувике несколько кадров, то они продолжают менятся и память не освобождается.

kayn
29.04.2010, 19:00
По мне, так слушать enterFrame клипом в котором разные объекты ведут себя по разному - дурной тон. Сам когда-то страдал такой темой.

orcpochta
29.04.2010, 19:02
всё круто, только enterFrame для скрытого кадра продолжает отрабатывать, если в мувике несколько кадров, то они продолжают менятся и память не освобождается.

код на то и код, чтобы отрабатывать - прорисовки-то при этом не происходит)))

Psycho Tiger
29.04.2010, 21:37
Происходит отрисовка только видимых объектов.
Делаем сложнейший Shape Tween, чтобы бедный компьютер сходил с ума и двигаем за сцену. При этом на сцене пусть летает какой-нибудь мячик. Компилим. Мячик летает без тормозов. Делаем фулл-скринн с 100%, чтобы анимация была видна. Нереальные тормоза.

Но код с этим никак не связан. Если следовать такой логике, то класс, исследующийся не от DisplayObject`а и вовсе не будет работать.

Да, кадры меняются. Было бы просто очень нездорово, если бы мой мувиклип, который вышел за край сцены вдруг перестал бы менять кадры.