logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!

Usando Acelerômetro no Flash Lite com Nokia Platform Services

Colocado por Leonardo França na(s) categoria(s): 1, 2.0, 4, 6, action, Actionscript, Adobe, Air, api, Aplicativos, app, AR, arte, auto, back, bar, BI, busca, camp, class, classe, classes, código, cs4, Curso, developer, Download, err, erro, error, event, exemplo, flash, flash lite, Flash Player, fonte, for, FullScreen, function, game, html, ide, IE, if, image, int, Java, Javascript, library, lite, Mac, map, mg, mobile, movimento, O, on, PHP, platform, player, procura, produto, programação, pt, RIA, Ria’s Geral, RoR, screen, SmartPhone, string, tag, TAT, Tech, Tema, Touch, UI, Utilidades, window, windows, XP em 08 30th, 2010 | Sem comentários



Acelerômetro é um sensor de movimento, sendo um dispositivo responsável por medir as posições relativas nos eixos x, y e z, ou seja, calcular a aceleração do objeto. Hoje em dia é usado para as mais variadas utilidades como por exemplo: air bags, medição de vibrações, medições de inclinação, smartphones, video games etc.

O Acelerômetro é usado hoje em dia é usado para as mais variadas utilidades como por exemplo: air bags, medição de vibrações, medições de inclinação, smartphones, video games etc.

O Flash Player 10.1(só para mobile) e o Flash Lite 4.0 possuem acesso ao acelerômetro do dispositivo. Estou ancioso para colocar as mãos em um Nokia N8 para testar as novas funcionalidades do Flash Lite 4.0, mas esta dificil. Enquanto isso, vamos desenvolvendo com Flash Lite 3.0 e 3.1.
A Nokia criou uma biblioteca especialmente para trabalhar em conjunto com o Flash Lite dando acesso a recurso que nativamente não são possivéis como acesso ao acelerômetro, GPS, agenda de contatos etc.

A Nokia criou uma biblioteca especialmente para trabalhar em conjunto com o Flash Lite dando acesso a recurso que nativamente não são possivéis como acesso ao acelerômetro, GPS, agenda de contatos etc.

Vou mostrar um exemplo simples do uso do acelerômetro com Flash Lite 3.0 e Nokia Platform Services.
Baixe a biblioteca da Nokia e em seguida salve no diretorio de acordo com seu sistema operacional:

O Nokia Platform Services só funciona em dispositivos com o Symbian S60 5th.

  • No Mac – Copie para /Users//Library/Application/Support/Adobe/Flash CS5/en/Configuration/Classes/
  • No Windows Vista – Extraia para /Users//AppData/Local/Adobe/Flash CS4/en/Configuration/Classes.
  • No Windows XP – Extraia para //Local Settings/Application Data/Adobe/Flash CS5/en/Configuration/Classes/

Começaremos nosso primeiro exemplo:

  • Crie um arquivo do tipo ActionScript 2.0 e peça para compilar para o Flash Lite 3.0 ou 3.1. Ou pode criar diretamente pelo Adobe Device Central CS5.
  • Crie um simbolo do tipo MovieClip e dê o nome de instância de “ball_mc”.
  • Crie três campos de textos do tipo dinâmicos, neles serão mostradas as posições x, y e z.
  • Devemos ter o stage parecido com isto:

    Stage para testar Acelerômetro

Feito isto, vamos a parte de programação agora:
Começaremos configurando o stage para não modificar o tamanho do aplicativo caso a janela sejá redimensionada. O “DisableKeypadCompatibilityMode” serve para usar em smartphones com telas touchscreen, se não for usado, o smartphone automaticamente adicionar as teclas virtuais referente a um smartphone não-touchscreen.

PLAIN TEXT
ACTIONSCRIPT:

  1. Stage.scaleMode = "noScale";
  2. Stage.align = "LT";
  3.  
  4. fscommand2("DisableKeypadCompatibilityMode");
  5. fscommand2("FullScreen", "true");

Agora vamos importar as classes feitas pela Nokia e utilizar a classe Device e desabilitar a autorotação do aplicativo.

PLAIN TEXT
ACTIONSCRIPT:

  1. import com.nokia.lib.Service;
  2. import com.nokia.lib.Device;
  3.  
  4. var deviceObject:Object = new Device();
  5. deviceObject.DisableAutoRotation(true);

Utilizaremos a classe Service passando o paramentro Sensor e em seguida passando como criterio de busca as coordenadas do acelerômetro.

PLAIN TEXT
ACTIONSCRIPT:

  1. var sensors = new Service("Service.Sensor", "ISensor");
  2. var inParam = {SearchCriterion:"AccelerometerAxis"};
  3. var outParams = sensors.FindSensorChannel(inParam);

Será retornado uma serie de valores que usaremos para “avisar” o smartphone que nosso aplicativo será atualizado a cada mudança de valor das coordenadas do acelerômetro através de um método callback.

PLAIN TEXT
ACTIONSCRIPT:

  1. var channelInfo = outParams.ReturnValue;
  2. var channelId = channelInfo[0].ChannelId;
  3. var contextType = channelInfo[0].ContextType;
  4. var quantity = channelInfo[0].Quantity;
  5. var channelType = channelInfo[0].ChannelType;
  6. var location = channelInfo[0].Location;
  7. var vendorId = channelInfo[0].VendorId;
  8. var dataItemSize = channelInfo[0].DataItemSize;
  9. var channelDataTypeId = channelInfo[0].ChannelDataTypeId;
  10. var channelParams = {ChannelId:channelId, ContextType:contextType, Quantity:quantity, ChannelType:channelType, Location:location, VendorId:vendorId, DataItemSize:dataItemSize, ChannelDataTypeId:channelDataTypeId};
  11.  
  12. var inParams = {ListeningType:"ChannelData", ChannelInfoMap:channelParams};
  13. sensors.RegisterForNotification(inParams, callBack);
  14. function callBack(transactionID:String, eventID:String, outParam:Object)
  15. {
  16.     if (outParam.ErrorCode == 0)
  17.     {
  18.         var channelData = outParam.ReturnValue;
  19.         txtX.text = channelData.XAxisData;
  20.         txtY.text = channelData.YAxisData;
  21.         txtZ.text = channelData.ZAxisData;
  22.        
  23.         xSpeed -= channelData.XAxisData/NOISE;
  24.         ySpeed += channelData.YAxisData/NOISE;
  25.     }
  26. }

Depois basta atualizar as coordenadas x e y com os valores xSpeed e ySpeed em nosso MovieClip. Disponibilizei no fonte um código para delimitar até onde o MovieClip pode andar, ou seja, somente na area do nosso aplicativo.
DOWNLOAD SOURCE

Para saber mais:
http://www.forum.nokia.com/Develop/Other_Technologies/Flash_lite/
http://library.forum.nokia.com/index.jsp?topic=/Flash_Lite_Developers_Library/GUID-46EABDC1-37CB-412A-ACAD-1A1A9466BB68.html

Se você esta procurando um livre sobre Flash Lite, recomendo Flash Lite 2: Crie Aplicativos e Games para Celulares do meu amigo Fabricio Manzi, creio que seja o único em português que temos ;)



Veja o post original no blog do autor aqui!  

Leonardo França

Escrito por Leonardo França @ http://www.leonardofranca.com.br
Saiba mais sobre o autor na sua pagina de perfil
Outros posts do autor:
» Desenvolvendo games para Nintendo Wii com Adobe Flash
» Monetize seus games feitos em Flash
» Software para gerenciar publicidade online – OpenX

Deixe um comentário



Spam Protection by WP-SpamFree

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2756 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com