Jump to content


Photo

Navegando Com O Clique Do Mouse Sem Release Em Botão


  • Faça o login para participar
3 replies to this topic

#1 valazari

valazari

    Flasher

  • Usuários
  • 134 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP- Brasil
  • Interesses:Arte, Design &amp; Comunicação<br />temas relacionados com computação gráfica em geral<br /><br />Doom3<br />Unreal Tournament 2004 e o UT1 (tradicional)<br />Unreal II the awakening ou algo assim

Posted 27/07/2006, 17:15

Olá Pessoal,
estou fazendo uma apresentação no Flash, daquelas básicas estilo powerpoint, porém usando os efeitos do flash, para o frame seguinte,
estou usando seta à direita ao invés de "release", e seta à esquerda para voltar ao frame anterior.
Isso funciona perfeitamente, desde que a pessoa use o teclado para navegar na apresentação.

Preciso saber se existe alguma forma de colocar a ação da seguinte maneira:
para o próximo frame "botão direito" do mouse.
para o frame anterior "botão esquerdo" do mouse.
ISSO EM QUALQUER LUGAR DA TELA.

Ou seja, qualquer outro botão seria via teclado, o mouse serviria apenas para ir para os slides anteriores ou posteriores.

Isso resolveria o problema no caso de usar aqueles mouses sem fio
de auditório

Alguem poderia me ajudar?

Desde já agradeço
Valter

#2 Saruman

Saruman

    Veterano

  • Usuários
  • 1112 posts
  • Sexo:Masculino
  • Localidade:São Paulo, SP

Posted 27/07/2006, 19:19

Creio que essa seja uma forma...
//CLIQUE ESQUERDO
//removemos algum ouvinte que esteja associado ao Mouse
//por algum motivo sem essa linha as ações não funcionam da forma que eu esperava
Mouse.removeListener(ouvinte);
//criamos um listener
var ouvinte:Object = new Object();
//definimos a função onMouseDown do listener
//quando o botão esquerdo for pressionado
ouvinte.onMouseDown = function () {
	//frame anterior
	prevFrame();	
};
//definimos o listener ao objeto Mouse
Mouse.addListener(ouvinte);
//CLIQUE DIREITO
//criamos um objeto do tipo ContextMenu chamado meu_cm
//um objeto do tipo ContextMenu trabalha com os
//menus que aparecem quando se clica com o botão direito
var meu_cm:ContextMenu = new ContextMenu();
//quando o meu_mc for chamada, isto é, quando o botão direito for pressionado
meu_cm.onSelect = function():Void{
	//próximo frame
	nextFrame();
}
//definimos o objeto meu_cm para funcionar em todo o _root
_root.menu = meu_cm;

Edição feita por: Saruman, 28/07/2006, 08:54.

import Profile;

var saruman:Profile = new Profile();

saruman.nome = new String("Tiago S. Kaneta");

saruman.localizacao = new Array("São Paulo","SP");

#3 valazari

valazari

    Flasher

  • Usuários
  • 134 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP- Brasil
  • Interesses:Arte, Design &amp; Comunicação<br />temas relacionados com computação gráfica em geral<br /><br />Doom3<br />Unreal Tournament 2004 e o UT1 (tradicional)<br />Unreal II the awakening ou algo assim

Posted 27/07/2006, 19:46

Olá Saruman,
que ótimo revê-lo aqui.... Vc é o cara!

Vou tentar usando o método que vc postou aí.

O resultado eu posto aqui.

Mais uma vez, Obrigado
Valter

#4 Saruman

Saruman

    Veterano

  • Usuários
  • 1112 posts
  • Sexo:Masculino
  • Localidade:São Paulo, SP

Posted 27/07/2006, 20:39

O código tem algum problema e ainda não encontrei o problema nem sua solução... vou dar uma trabalha em cima...

--EDITADO--

Ok corrigi o problema...
//CLIQUE ESQUERDO
//BASTA COLOCAR ESSA LINHA
Mouse.removeListener(ouvinte);
var ouvinte:Object = new Object();
ouvinte.onMouseDown = function () {
	prevFrame();	
};
Mouse.addListener(ouvinte);
//CLIQUE DIREITO
var meu_cm:ContextMenu = new ContextMenu();
meu_cm.onSelect = function():Void{
	nextFrame();
}
_root.menu = meu_cm;
O problema dessa solução é que quando se usa o filme fora do ambiente de programação, o menu de contexto aparece cada vez que se aperta o botão direito... o que não é muito bom para uma apresentacao...

Outra possivel solução como havia dito antes de editar este post, é um clique vai para o proximo, dois cliques volta... o problema no código era o mesmo e já corrigi:
var tempo:Number = 200;
Mouse.removeListener(someListener);
someListener = new Object();
clique = false;
someListener.onMouseUp = function() {
	if (clique) {
		clique = false;
		prevFrame();
		clearInterval(intID);
	} else if (!clique) {
		clique = true;
		clearInterval(intID);
		intID = setInterval(function () {
			nextFrame();
			clique = false;
			clearInterval(intID);
		}, tempo);
	}
};
Mouse.addListener(someListener);
Espero ter ajudado mais do que atrabalhado...

Edição feita por: Saruman, 28/07/2006, 08:58.

import Profile;

var saruman:Profile = new Profile();

saruman.nome = new String("Tiago S. Kaneta");

saruman.localizacao = new Array("São Paulo","SP");




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq