Boas Hugo,
além de não ser possível fazer isso assim, nem é boa prática. O ideal é
tentar perceber porque é que precisas das instancias com o mesmo nome
que vem do XML para se arranjar uma solução apropriada. Que poderá
passar por criar uma classe XPTO que tem uma propriedade pública nome,
que pode ser preenchida no construtor do XPTO:
public class XPTO extends MovieClip
{
public var nome:String
public function XPTO(nome:String):void
{
this.nome=nome;
}
}
depois mudas o teu ciclo para:
for each (var itemResultado:XML in listaDeResultados)
{
var mc:XPTO = new XPTO(itemResultado.nomeMc)
Para acederes depois aos teus movieclips fazes um algoritmo de pesquisa
(um ciclo) que devolve um movieclip dado o nome:
public function getMovieClipByName(name:String):MovieClip
{
for (var i:Number=0; i<numChildren; ++i)
{
var mc:DisplayObject=getChildAt(i);
if (mc is XPTO && mc.nome==name)
return mc;
}
return null
}
Claro que sabendo o teu caso fica mais facil ajudar, mas o exemplo
acima é capaz de funcionar para quase todos os casos.
João Saleiro
CTO @ Webfuel
Adobe Community Expert
Co-founder of the Portuguese RIA Community
<btn_profile_greytxt_80x15.gif>
bRaun wrote:
Boas,
Estou com um problema no meu código, quero controlar movieClips que
estão no stage através do resultado de um XMLList. Acontece do
XMLList.nomeDoMC resultam strings que não consigo converter para
MovieClips.
for each (var itemResultado:XML in listaDeResultados) {
var mc:MovieClip = itemResultado.nomeMc as MovieClip;
var legenda:Legenda = new Legenda(mc, itemResultado.votos);
}
dá o erro:
TypeError: Error #1009: Cannot access a property or method of a null
object reference.
for each (var itemResultado:XML in listaDeResultados) {
var legenda:Legenda = new Legenda(itemResultado.nomeMc,
itemResultado.votos);
}
dá o erro:
TypeError: Error #1034: Type Coercion failed: cannot convert
[EMAIL PROTECTED] to flash.display.MovieClip.
Se alguém me pudesse dar uma ajudita..
Obrigado,
H