| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/05/2009 09:01:39
|
Andre Brito
JWizard
Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline
|
Galera, estou com um problema usando Flex. Eu já tinha esse problema, mas consegui contornar ele fazendo o que precisava de outra forma.
Eu tenho um componente hipotético chamado Thumb, que tem uma Image e um Label. O que eu quero fazer é instanciar esse componente por ActionScript, colocar o text do Label dele com uma String que eu digito e adicionar ele em uma TileList que está dentro de um Panel.
Basicamente, é assim: Panel tem uma TileList e a ControlBar. Quando clicado em um determinado botão na ControlBar, aparece uma PopUp, com um campo. Digitado alguma coisa dentro do campo e dado o ok, eu tenho uma String, que deve ser o nome do componente (não o nome da variável de referência) novo que vai na TileList.
Meu código está assim:
O erro que dá na execução é esse:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
, que dá na linha de atribuição do text (componente.labelDele.text = nome).
Eu dei uma procurada, mas não achei nada que fosse parecido. Uma coisa que eu pensei é em fazer o código do Thumb (que é o componente) em ActionScript (ele foi feito usando somente MXML), mas não sei se vai adiantar (não vejo razão pra funcionar também).
Alguém sabe o que pode estar acontecendo?
Abraço.
|
Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/05/2009 09:15:34
|
JavaKaiser
JavaBaby
![[Avatar]](/images/avatar/c3d54b1a928304d7dfd75c1c8f5ace33.jpg)
Membro desde: 24/04/2008 08:46:57
Mensagens: 80
Offline
|
e ai Andre,
olha, nunca fiz uma aplicação com flex (ainda),
mas pelo seu codigo, algo esta retornando nulo,
o que indica que seu componente nao esta sendo criado
mas como nao tenho como testar esse codigo aqui, fica mais dificil te ajudar mais,
mas tenta debugar, ou colocar um print depois das linhas de atribuição pra saber o que esta nulo.
flw
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/05/2009 09:36:05
|
Andre Brito
JWizard
Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline
|
JavaKaiser,
É, é isso mesmo que acontece - o Thumb ainda não foi criado e eu tento acessar uma propriedade dele (que vai ser nula).
A criação dele (ie, o método que fica em creationComplete) é chamado depois de eu adicionar no array (que é o dataprovider da TileList), indicando que o objeto é criado depois.
|
Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/09/2009 11:44:37
|
Anonymous
|
O que ocorre é um componente só é de fato criado depois de adicionado no display list. No mxml isto é transparente, mas quando você usa actionscript vc precisa usar o addChild (como é o que você parece ter percebido).
Para resolver isso você poderia criar uma propriedade Bindable no seu componente e fazer o bind com o seu labelDele. Ou seja, o seu Thumb poderia ter algo mais ou menos assim:
Então, depois de criar o seu Thumb basta atribuir um valor à propriedade myLabel. Não fiz o teste, mas deve funcionar uma vez que depois de adicionar o componente no display list o SDK do flex excuta os bindings.
[]'s
Beck Novaes
www.dclick.com.br
blog.dclick.com.br
|
|
|
 |
|
|
|
|