Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xtreem

Notação "this[]"

Recommended Posts

Então, por que, quando eu uso this["_droptarget"].substr(6, 2), o flash me retorna o que eu espero que ele retorne, e quando eu uso, this["_droptarget"]._x ele não me retorna nada? Aliás, retorna 'undefined'.

 

Aliás, nunca entendi a diferença entre propriedades/comandos que utilizam "_" (._x, ._y) e os que não usam (.substr).

Alguém saberia me explicar isso?

 

Valeu pelo help pessoal.

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aliás, nunca entendi a diferença entre propriedades/comandos que utilizam "_" (._x, ._y) e os que não usam (.substr).

Alguém saberia me explicar isso?

 

Nenhuma apenas uma diferença do jeito de chamar... tanto que no AS 3.0 isso deixou de existir.

 

this["_droptarget"].substr(6, 2) retorna um valor... relacionado ao THIS

 

this["_droptarget"]._x retorna undefined... pq ele não existe uma propriedade ._x do elemento droptarget

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, mas se dou um trace, por exemplo, em this["_droptarget"], ele retorna o nome do movieclip sobre qual eu soltei meu botão, que é "campo1". Se this["_droptarget"] faz referência à campo1, e campo1 possui coordenadas x e y, eu não deveria conseguir extrair o valor de this["_droptarget"]._x?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, justamente pelo que você disse... ele diz qual o clip no qual você dropou seu MC... e para pegar a posição desse clip que você dropou não se faz assim... mas sim puxando o nome da intancia dele ._x

 

Dessa maneira que você fez ele não vai retornar nada.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, já tentei de tudo e não tô conseguindo, podes me dizer como faço?

Se eu tentar puxar através de "_name", ele não reconhece. Se eu puxar pelo ".substr", consigo extrair o nome inteiro dele, mas não a posição "._x" disso. Aliás, é justamente isso que me faz pensar que há uma diferença, sim, entre notações "_" e ".", pois o uso do underline não funciona junto à notação thils[], deve ser por alguma razão.

 

Valeu pela tua atenção.

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

LoL

 

Obvio que funciona:

this['mc'].onPress

this['mc'].loadMovie

 

Tudo isso vai funcionar

 

No AS 2.0

Propriedades de um clip são chamadas com _

No AS 3.0 é diretamente com .

 

Exemplo bem simples de como se faz:

this.createEmptyMovieClip('mc', 1);

this['mc'].attachMovie('bolinha', 'bola', 2);

this['mc'].onPress = function(){
 this.startDrag();
}

this['mc'].onRelease = function(){
 this.stopDrag()
 if(eval(this._droptarget) == area){
 trace(area._x);
 }
}

bolinha é um MC em minha biblioteca, area é um mc no palco instanciado de area...

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

LoL

 

Obvio que funciona:

this['mc'].onPress

this['mc'].loadMovie

 

Tudo isso vai funcionar

 

No AS 2.0

Propriedades de um clip são chamadas com _

No AS 3.0 é diretamente com .

 

Exemplo bem simples de como se faz:

this.createEmptyMovieClip('mc', 1);

this['mc'].attachMovie('bolinha', 'bola', 2);

this['mc'].onPress = function(){
 this.startDrag();
}

this['mc'].onRelease = function(){
 this.stopDrag()
 if(eval(this._droptarget) == area){
 trace(area._x);
 }
}

bolinha é um MC em minha biblioteca, area é um mc no palco instanciado de area...

 

Abraços

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo kra, acho que eu não me fiz claro, desculpa. Usando eval, tudo certo, o problema é que eu não quero usar eval.

O código que eu tô querendo é exatamento esse: this._x = eval(this._droptarget)._x;

Estou tentando não utilizar eval, no lugar dele, quero usar notação this[], é possível?

 

Obrigado pela tua atenção mais uma vez.

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você estiver usando Flash Player acima de 5 não.

Caso contrario ai talvez possa vir a funcionar... da uma pesquisada no pontoflash que lá tem algo do genero se não me engano.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.