Ir para conteúdo

POWERED BY:

Arquivado

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

Álan_nov

[Resolvido]problemas em controlar a timeline

Recommended Posts

"Criei" um jogo de tiro em flash, onde o primeiro frame é para você dar "play" e iniciar o jogo no segundo frame.

Até consegui fazer isso, porém não no mesmo fla. que o jogo, ai ao colocar a As3 nesse mesmo fla. que o jogo não deu certo, aparece o seguinte erro:

The class or interface 'MouseEvent' could not be loaded.

 

Se isso fosse em AS2 não teria problemas, porém o jogo que consegui é em AS3, então logicamente tenho que seguir todo restante em AS3.

Ai vai minha dúvida, como faço para ao clicar no botão ele vá para o próximo frame?

Desde já agradeço a todos que ajudarem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

import flash.events.MouseEvent;

Porém so precisa importar esse pacote se tiver trabalahndo com classes, se tiver construindo o jogo de forma procedural, não precisa do import não.

 

 

Para clicar e ir para o proximo frame, pode fazer assim:

 

botao.addEventListener(MouseEvent.CLICK, vai);

function vai(e:MouseEvent):void{
nextFrame();
//ou gotoAndStop(numero do frame);
}

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei o que tem de errado, se puderem ajudar.

Lá vai o AS3

 

Coloquei isso no primeiro frame:

 

stop();

btn.addEventListener(MouseEvent.CLICK, botao1);
function botao1(evento:MouseEvent):void {
trace("funcionou");
//this.play();
gotoAndPlay("2");
}

E no segundo frame o jogo:

 

/* -
Animação Programada
Este exemplo mostra como criar, posicionar, animar, testar acerto da figura com o mouse e deletar MCs
*/
// Definição das variáveis que serão usadas para estatísticas
_global.acertos = 0; //Armazena a quantidade de logos atingidos
_global.erros = 0; // Armazena a quantidade de logos que "fugiram"
_global.cliques = 0; // Armazena a quantidad e cliques (acertos e erros)
_global.cProfundidade = 100;
_global.nivel = 1;
// Definição das variáveis (tempo de execução) que serão usadas nos cálculos
var xVelocidade:Number = 5;
var larguraStage:Number = 900; //Definição da área dos cliques
var alturaStage:Number = 450; // Definição da área dos cliques
// Inclusão a instância do MC alvo_mc da Library no Stage.
// Este clip será usado como um cursor personalizado
this.attachMovie("alvo_mc", "alvo_mc", 5001);
// Oculta o cursor do mouse
Mouse.hide();
// Cria Listener para o Mouse
var mouseListener:Object = new Object();
/* Sempre que o cursor do mouse mover-se para fora do arquivo SWF, a posição será atualizada na instância do alvo_mc no Stage. */
mouseListener.onMouseMove = function() {
	alvo_mc._x = _xmouse;
	alvo_mc._y = _ymouse;
};
// Quando o botão do mouse é clicado, verificar se o cursor está fora dos limites do Stage.
//Em caso positivo, incrementa o número de cliques dados
mouseListener.onMouseDown = function() {
	_global.cliques++;
	if (fundo_mc.hitTest(_xmouse, _ymouse, false)) {
		_global.acertos++;
	}
};
Mouse.addListener(mouseListener);
// Define um TextFormat que é usado para formatar o campo estatisticas_txt.
var meu_textoFormatado:TextFormat = new TextFormat();
meu_textoFormatado.bold = false;
meu_textoFormatado.font = "Helvetica-Narrow";
meu_textoFormatado.size = 20;
meu_textoFormatado.color = 0xffffff;

// Cria um campo texto para mostrar as estatísticas do jogador.
this.createTextField("estatisticas_txt", 5000, 280, 525, 700, 75);
// Aplica o TextFormat no campo texto.
estatisticas_txt.setNewTextFormat(meu_textoFormatado);
estatisticas_txt.selectable = false;
updateStats();

// Inclui um evento onEnterFrame na timeline principal para que um novo logo seja constantemente gerado no jogo.
this.onEnterFrame = function() {
	// Inclui aleatoriamente um novo logo
	if (randRange(0, 20) == 0) {
		// anexa uma nova instância do logo da Library no Stage e define uma profundidade única
		var randomLogo:Number = randRange(1, 6);
		// Observe que o nome do MC a seguir é obtido pelo Flash através do Identifier do Linkage
		var thisMC:MovieClip = this.attachMovie("logo"+randomLogo+"_mc", "logoAlvo"+_global.cProfundidade+"_mc", _global.cProfundidade);
		_global.cProfundidade++;
		// Configura a posição inicial do logoAlvo_mc à esquerda do Stage
		thisMC._x = -thisMC._width;
		/* Cria um número aleatório entre 80 e 100.
		   Será usado para o tamanho (escala) do MC atual, alpha e velocidade
		   que se moverá pelo Stage. */
		var escala = randRange(80, 100);
		/* Configura as propriedades do _xescala e _yescala no MC atual.*/
		thisMC._xescala = escala;
		thisMC._yescala = escala;
		thisMC._alpha = escala;
		thisMC.speed = xVelocidade+randRange(0, 3)+_global.nivel;
		/* Configura um valor aleatório para _x.
		   Agora, ao invés de todos os logos voarem sobre o mesmo caminho,
		   eles variam sua posição vertical levemente. 500 e 100 */
		thisMC._x = Math.round(Math.random()*400)+300;
		/* Cria um manipulador onEnterFrame que executam algumas dúzias de vezes por segundo */
		thisMC.onEnterFrame = function() {
			/* Move o logo horizontalmente ao longo do Stage.
			   No momento todos os logos movem-se da esquerda para a direita */
			this._y += this.speed;
			/* Decrementa levemente a posição do _y no MC atual.
			   Isto faz com que pareça que os logos estejam voando
			   levemente mais alto do que movem-se no Stage.*/
			this._x -= .4;
			/* Se a posição atual do logo é maior do que o Stage,
			   conta o logo como "perdido" e apaga sua instância. */
			if (this._y>alturaStage) {
				_global.erros++;
				updateStats();
				this.removeMovieClip();
			}
		};
		// Quando o logo é pressionado, contar como um "acerto"
		thisMC.onPress = function() {
			// Atualizar as estatísticas do jogador
			_global.acertos++;
			if ((_global.acertos%40) == 0) {
				_global.nivel++; // Mudança de nível
				//this.gotoAndPlay("nivelacima"); 
			}
			updateStats();
			/* vai para o rótulo do MC chamado "hit"
			  (que permite você mostrar uma animação engenhosa quando a
			   instância é atingida.) */
			this.gotoAndPlay("hit");
			/* Configura algumas variáveis locais que você usará para
			   animar o logo caindo pelo Stage. */
			var xmov = this._x;
			var gravity = 20;
			// Cria um evento onEnterFrame para a instância do MC atual.
			this.onEnterFrame = function() {
				xmov += gravity;
				ymov *= 0.5;
				/* incrementa a rotação do MC atual no sentido horário
				   em 5 graus. */
				this._rotation += 1;
				/* Configura as propriedades _x e _y do MC no Stage, 
				   isto permite-nos fazer com que a queda
				   seja mais realista */
				this._y += xVelocidade;
				this._x = ymov;
				/* Após anular a posição _y position no Stage, 
				   remova o MC para que suas coordenadas não sejam
				   continuamente calculadas */
				if (this._x>alturaStage) {
					this.removeMovieClip();
				}
			};
			/* Apagar o manipulador de evento onPress. 
			   Isto faz com que o logo não possa ser continuamente clicado
			   enquanto ele está caindo pelo Stage. */
			delete this.onPress;
		};
	}
};

// Função que atualiza as estatísticas no Stage
function updateStats() {
	var precisao:Number = Math.round((_global.acertos/_global.cliques)*100);
	if (isNaN(precisao)) {
		precisao = 0;
	}
estatisticas_txt.text = "Cliques: "+_global.cliques+" "+"Acertos: "+_global.acertos+" "+"Erros: "+_global.erros+" "+"Precisão: "+precisao+"%"+" "+"Nível: "+_global.nivel;
}

/* Função que retorna um inteiro aleatório entre dois números especificados.
   Isto permite que você inclua algumas diferenças sutis de tamanho e
   velocidade para o MC no Stage.*/
function randRange(minNum:Number, maxNum:Number):Number {
	return (Math.floor(Math.random()*(maxNum-minNum+1))+minNum);
}


Desde já agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simplesmente o código do 2 frame ta em as 2.

Abs

 

 

Bahhhh que coisinha!

 

Baixei o arquivo por AS3, ai vi na AS isso:

 

Mouse.addListener(mouseListener);

 

já pense, isso é AS3 certo

Mas cara, valeu mesmo assim.

 

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.