Страница 1 из 1

Использование акселерометра на Flash Lite 4.0

Добавлено: 19 дек 2010, 02:23
Doker
Говорю сразу, автором данного урока являюсь не я. Я только перевел на русский комментарии, выложил сюда.

Тестировалось на N8 Nokia, официально первое устройство с поддержкой Flash Lite 4.0. Кроме Nokia N8 так же тестировали на Nokia E7 и Nokia C7 , все работает, и Adobe Flash Lite 4.0 уже установлен. Это предполагает возможность разработки приложений для Symbian 3, используя ActionScript 3.0.
Мы должны смотреть на то, что Flash Lite 4.0 и Flash Player 10.1 разные вещи, они имеют некоторые существенные различия:
Flash Lite поддерживает некоторые функции частично.
Flash Lite добавляет некоторые функции специально для работы с мобильными устройствами.

Flash Lite 4.0 базируется на Flash Player 10, с функциями, которые были введены в Flash Player 9 и 10. Среди имеющихся ресурсов:
Multi-Touch
Flash Player 10 полнотекстового поиска
Использование встроенной клавиатуры ввода текста
RTMP канал передачи данных
RTMPE
RTMPT и RTMPTE
GPS
Акселерометр
SharedObject Remote (даааааа!)

См. также частично поддерживается некоторые классы, и соотв. некоторые классы не поддерживаются.
Вот наш первый пример использования новой возможности Flash Lite 4.0, и в этом случае акселерометр.
Создайте файл типа Flash Lite 4.0 в Flash CS5 или в Adobe Device Central CS5.
Добавить три динамических текстовых поля, и них будет показывать координаты X, Y и Z.

Мы начинаем писать код, у нас есть метод для создания шара, который будет двигаться от акселерометра.

Код: Выделить всё

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);}
Затем проверяем, что устройство имеет акселерометр, чтобы добавить слушателей, которые обрабатывают данные датчика и обновление позиции мяча.

Код: Выделить всё

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);    }}
Ну и остальной код.

Код: Выделить всё

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 <RADIUS)    {        ball.y = RADIUS;        ySpeed = 0;    }    else if (newY> stage.stageHeight - RADIUS)    {        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);}
Исходник:

[url=http://www.leonard=ofranca.com.br/wp-content/uploads/2010/10/acelerometro_flashlite40.zip]С офф. сайта[/url]
Зеркало

Оригинал: тут