Como você faz o Flash não tornar um objeto no Palco?

votos
0

Esta discussão começou por aqui , mas eu pensei que seria bom ter uma resposta definitiva ...

Então, digamos que você tem MovieClip no palco (ou um UIComponent para o público Flex) - o que você tem que fazer para não fazê-lo assim que o usuário não pode ver o objeto, mas também para que o AVM2 nem sequer fator -lo quando tornando o palco para o usuário?

Eu sempre achei que a resposta era para definir visible = false, mas há um argumento para fora lá que o objeto tem que colocado fora dos limites do Palco (como x = 2000o que parece ser um hack IMO). Alguém sabe a resposta real?

EDIT: Eu imagino a necessidade de ter flash não tornar o item seria para ajudar o desempenho.

Publicado 04/10/2008 em 12:58
fonte usuário
Em outras línguas...                            


5 respostas

votos
3

Como outras respostas têm notado, o "hack" para clipes em movimento fora do palco não é mais necessário. No entanto, a configuração visible = false;é não uma coisa inteligente a fazer se o desempenho é importante. Clipes que fazem parte da lista de exibição, mas definido para ser invisível, ainda pode incorrer em uma sobrecarga de processamento significativo se você tem bastante deles. Se você removê-los da lista de reprodução com removeChild(), não incorrem em sobrecarga de renderização (embora eles ainda ocupam memória).

Respondeu 07/10/2008 em 08:06
fonte usuário

votos
2

Sim, como o projeto disse, basta removê-lo da lista de exibição:

var s:MovieClip = new MovieClip();
s.lineStyle(1, 0xFFFFFF);
addChild(s);//shows in moviea 
removeChild(s);//removes from display list, but you still have a reference to it

Eu ainda não testado que, mas deve dar-lhe a idéia geral.

Mike

Respondeu 07/10/2008 em 06:31
fonte usuário

votos
2

O corte é para Flash 8 (Actionscript 2) ou abaixo. Com as atualizações para o ActionScript 3 e Flex 2/3 definindo a propriedade visível é o suficiente.

Respondeu 04/10/2008 em 13:19
fonte usuário

votos
1

Removê-lo da lista de exibição completamente (removeChild (), removeChildAt (), etc.). Contanto que você realmente não definir a referência para o MovieClip para "null", vai ainda permanecem na memória e podem ser re-adicionado à lista de exibição quando você precisar dele novamente (addChild (), atChildAt (), etc. .)

Respondeu 05/10/2008 em 06:44
fonte usuário

votos
1

Se você estiver usando Flex e seu sistema de layout recipiente, o includeInLayout propriedade na UIComponentclasse também é útil quando você não quer mostrar algo: especifica se deve ou não levar o componente em quando se mede o layout.

Respondeu 04/10/2008 em 17:41
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more