×
Namespaces

Variants
Actions

Archived:Dectando pressionamentos longos no Flash Lite

From Nokia Developer Wiki
Jump to: navigation, search

Archived.pngAquivado: Este artigo foi arquivado, pois o conteúdo não é mais considerado relevante para se criar soluções comerciais atuais. Se você achar que este artigo ainda é importante, inclua o template {{ForArchiveReview|escreva a sua justificativa}}.

Não recomendamos o desenvolvimento em Flash Lite para aparelhos atuais da Nokia. Todos os artigos relacionados a Flash Lite foram arquivados. A plataforma Nokia Asha e os aparelhos recentes S40 não possuem mais o Flash Lite. O uso de Flash Lite em Symbian é limitado. Por exemplo, informações relativas à plataforma Nokia Belle podem ser encontradas neste link (em Inglês). Informações específicas de Flash Lite para aparelhos S40 ANTIGOS e Symbian podem ser encontradas na Flash Lite Developers Library (em Inglês).

Article Metadata

Exemplo de código
Código fonte: Media:LongPress.zip

Artigo
Tradução:
Por edprado
Última alteração feita por hamishwillee em 14 May 2013

--edprado 21:28, 23 April 2010 (UTC)



Contents

Introdução

Celulares estão substituindo os computadores de mesa(desktops). Para facilitar esta transição muitos componentes da interface do usuário foram adaptados para os celulares. Isto se deve a usabilidade e a praticidade de componentes, por exemplo, janelas, ícones, menus, ponteiros, etc. Eles foram exaustivamente testados até que fosse comprovado o seu sucesso e intuitividade. Os telefones atuais tem a interação baseada no toque de tela (touch screen) é uma analogia ao mouse que é encontrado nos computadores de mesa (desktops). Mas, cuidado, testes mostraram que nem todas as funcionalidades do mouse foram trazidas para os celulares. O mouse oferece 2 cliques (direito e esquerdo), mas em dispositivos sensíveis ao toque somente é possível utilizar um desses. Entretanto, isto pode ser contornado diferenciando o pressionamento curto(short press) de um pressionamento longo(long press).

Este artigo mostra como um pressionamento longo pode ser detectado no Flash Lite e foi testado em um telefone Nokia 5800 XPressMusic que possui tela sensível ao toque(touch screen). O arquivo .swf está publicado como Flash Lite 2.0

Pressionamento longo e os problemas associados

Pressionamento longo tem sido usado em celulares Nokia com teclado físico para inserção de textos. Similarmente, os pressionamentos longos foram também utilizado na agenda do Nokia 5800 XpressMusic. Quando ocorre um pressionamento longo em qualquer contato da agenda é apresentado um menu pop-up. De uma maneira mais genérica, é lógico associar um pressionamento longo com um menu. Isto se deve porque a maioria dos cliques com o botão direito nos computadores de mesa exibem um menu.

O objetivo de cada componente (que suporta pressionamento curto e longo) tem que ser cuidadosamente elaborado. Normalmente deve-se associar o uso/abertura de um item quando acontece o pressionamento curto. É exibido um menu pop-up quando ocorre o pressionamento longo e neste menu devem estar as opções mais frequentes. Inspirado na agenda de contatos do 5800, o pressionamento curto resulta na abertura do contato e o pressionamento longo apresenta a abertura de um pequeno menu. É interessante observar que, uma vez que o clique exceda o limite do pressionamento curto, haverá um indicação visual para identificar que o limite foi ultrapassado. Esta indicação é um pequeno círculo no qual o raio cresce discretamente e desaparece logo em seguida.

Uma similar interação foi feita no seguinte código abaixo:

Implementação

Como pode ser visto na imagem abaixo, existe um botão que pode aceitar ambos os pressionamentos, o curto e o longo. Se o usuário pressionar brevemente, haverá um incremento na variável que conta o número de pressionamentos curtos que usuário fez até o momento (mostrado no campo de texto(textfield)). O mesmo acontece para o pressionamento longo, outra variável acumula quando vezes ocorreu o pressionamento longo e exibe no campo de texto correspondente. Também é exibido um círculo com raio quando o tempo limite do pressionamento curto é atingido.


Ss Longpress.jpg

f1 =0;  // f1 é um sinalizador(flag) para indicar o pressionamento do botão bt
bt.onPress = function() {
clickTime = new Date();
f1 =1;
}
lp_cnt=0; sp_cnt =0;
bt.onRelease = function() {
relTime = new Date();
elapsed = relTime.getTime() - clickTime.getTime();
trace( "decorrido: " + elapsed);
if( elapsed > 300) // Limite do pressionamento curto = 300 milisegundos
{ lp_cnt++;lp.text = lp_cnt; }
else { sp_cnt++; sp.text = sp_cnt;}
removeMovieClip(c);
lpcnt=0;
f1=0;
}
lpcnt =0;
function callback() {
if(f1 ==1 and lpcnt>6 ){
// É 6 porque 50*6 = 300(limite do pressionamento curto)
attachMovie("circ","c",this.getNextHighestDepth());
//anexa o circ movieclip na posição onde houve o clique
c._x = _xmouse;
c._y = _ymouse;
lpcnt++;return;
}
if(f1>0) lpcnt++;
}
var intervalID:Number = setInterval(callback, 50);

A exibição de um menu é simples em Flash e não é o foco deste artigo.

Download

Media:LongPress.zip

Conclusão

Este exemplo de código apresenta a ideia de pressionamento longo, ele oferece uma melhor interação do usuário para um ambiente com interação limitada como os celulares.

This page was last modified on 14 May 2013, at 10:21.
82 page views in the last 30 days.
×