Tivemos o lançamento do Nokia N8, o primeiro dispositivo oficialmente a suportar Flash Lite 4.0. Além do Nokia N8, também temos o Nokia C7 e o Nokia E7, todos rodando o sistema operacional Symbian^3 e com o Adobe Flash Lite 4.0 já instalado. Isso implica a possibilidade do desenvolvimento de aplicativos para Symbian^3 usando ActionScript 3.0 rodando pelo browser ou standalone
Precisamos atentar para o fato de que o Flash Lite 4.0 não é o Flash Player 10.1, eles possuem algumas diferenças significativas:
- Flash Lite suporta algumas funcionalidades parcialmente.
- Flash Lite adiciona algumas funcionalidades para trabalhar especificamente com dispositivos movéis.
O Flash Lite 4.0 é baseado no Flash Player 10, possuindo recursos que foram introduzido no Flash Player 9 e 10. Entre os recursos disponivéis estão:
- Multi-touch support
- Flash Player 10 text engine
- Using inline text input
- RTMP data channel
- RTMPE
- RTMPT and RTMPTE
- Multi bit-rate streaming
- Geolocation
- Accelerometer
- SharedObject Remote(Obaaaa! :D)
Além disso veja as classes parcialmente suportadas e as classes não suportadas.
Vamos ao nosso primeiro exemplo com utilização das novas capacidades do Flash Lite 4.0, nesse caso, acelerômetro.
- Crie um arquivo do tipo Flash Lite 4.0 pelo Flash CS5 ou pelo Adobe Device Central CS5.
- Adicione três campos de textos dinâmicos, neles serão mostrados as coordenadas de x, y e z.
Começaremos nossa codificação, teremos um método para criar a bola que sofrerá os efeitos do acelerômetro.
[ACTIONSCRIPT3]
function createBall():void
{
ball = new Sprite();
ball.graphics.beginFill(0xFF0000);
ball.graphics.drawCircle(0, 0, RADIUS);
ball.cacheAsBitmap = true;
ball.x = stage.stageWidth / 2;
ball.y = stage.stageHeight / 2;
addChild(ball);
}
[/ACTIONSCRIPT3]
Em seguida, verificamos se o aparelho tem acelerômetro para adicionarmos os listeners que pega os dados do sensor e para atualizar as posições da bola.
[ACTIONSCRIPT3]
function AccelerometerTest()
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
createBall();
if (Accelerometer.isSupported)
{
accelerometer = new Accelerometer();
accelerometer.addEventListener(AccelerometerEvent.UPDATE, accUpdateHandler);
stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
}
[/ACTIONSCRIPT3]
E o restante do código.
[ACTIONSCRIPT3]
function enterFrameHandler(event:Event):void
{
event.stopPropagation();
moveBall();
}
function moveBall():void
{
var newX:Number = ball.x + xSpeed;
var newY:Number = ball.y + ySpeed;
if (newX <20)
{
ball.x = RADIUS;
xSpeed = 0;
}
else if (newX> stage.stageWidth – RADIUS)
{
ball.x = stage.stageWidth – RADIUS;
xSpeed = 0;
}
else
{
ball.x += xSpeed;
}
if (newY
{
ball.y = stage.stageHeight – RADIUS;
ySpeed = 0;
}
else
{
ball.y += ySpeed;
}
}
function accUpdateHandler(event:AccelerometerEvent):void
{
xSpeed += event.accelerationX * 2;
ySpeed -= event.accelerationY * 2;
txtX.text = new String(event.accelerationX);
txtY.text = new String(event.accelerationY);
txtZ.text = new String(event.accelerationZ);
}
[/ACTIONSCRIPT3]
Agora basta pedir para testar no emulador do Adobe Device Central CS5, devemos ter algo parecido com isto:
DOWNLOAD SOURCE
Para saber mais:
http://help.adobe.com/en_US/flashlite/dev/4/index.html
Pingback: Usando Acelerômetro com Adobe AIR for Android | Leonardo França
Pingback: Usando Acelerômetro com Adobe AIR for Android - redeRIA | Agregador de noticias, artigos, tutoriais Flex, Flash, JavaFX, AJAX e Rich internet applications em geral!