Ir para conteúdo

Arquivado

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

Andre Cocuroci

[Resolvido] Ação em MovieClipes Criados dinamicamentes

Recommended Posts

Olá, fiz esse script abaixo, mas não consigo colocar a ação de onRelease nos bts, vejam:

 

var array:Array = new Array("a","b","c");
for (var i:Number=0;i<=2;i++) {
	var mc:MovieClip = palco.createEmptyMovieClip ("mc"+i,_root.getNextHighestDepth());
	with (palco["mc"+i]) {
		beginFill(0xFF0000);
		moveTo(0, 0);
		lineTo(30, 0);
		lineTo(30, 30);
		lineTo(0, 30);
		lineTo(0, 0);
		_x = 31 * i;
		_y = 0;
			onRelease = function() {
		   trace(array[i]);
			}

}

Alguém sabe como resolver?

 

A ação dos botões viriam do array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, algumas modificações:

 

var array:Array = new Array("a", "b", "c");
for (var i:Number = 0; i <= 2; i++) {
	var mc:MovieClip = palco.createEmptyMovieClip("mc" + i, palco.getNextHighestDepth());
	mc.beginFill(0xFF0000, 100);
	mc.moveTo(0,0);
	mc.lineTo(30,0);
	mc.lineTo(30,30);
	mc.lineTo(0,30);
	mc.lineTo(0,0);
	mc.endFill();
	mc._x = 31 * i;
	mc._y = 0;
	mc.i = i;
	mc.onRelease = function () {
		trace(array[this.i]);
	};
}

Veja que o getNextHighestDepth() é chamado a partir do mc palco, ou seja, onde você está criando os seus movieclips. Eu aproveitei a variável mc que você criou para atribuir todos os comandos a ela. Do outro modo ela não estaria servindo para nada, poderia ser omitida. Por último, eu coloquei um i próprio para cada mc, e na hora de chamar o onrelease cada mc chama com o seu i. Se não fosse assim, todos os mcs chamariam o mesmo i (valendo três nesse caso, já que é onde termina o loop do for).

 

Abraço

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.