Управление мышью ПК посредством мобильного на Air и ANE


Привет друзья! Это уже наверное 3я редакция данной статьи :) Каждый раз находя в ней ошибки и логические нестыковки — все дальше и дальше уходило желание в её публикации :)

Предыстория:
На работе клиенту понадобилось двигать мышку на его PC под управлением Windows7 удаленно с помощью iPad. Удаленно — в нашем случае было по внутренней сети WiFi. А администратор надохится в 4х метрах перед громадным экраном :) Причем тут флеш? Всё просто. Сделал я это с помощью Native Extension и Adobe Air. Я не обладаю глубокими знаниями ни Objective-C ни С++. Собрать HelloWorld — это не знания :) По-этому, вопрос о 100% нативном решении даже не рассматривался. Откуда я узнал как нажать виртуально мышку и сместить курсор — ответ есть в гугл и msdn ) Все гуглится за пару минут.

Читать дальше →

Air VS OpenFL. Тест Nape.



Всем привет!
Наконец-то я собрался и сделал демки на AS3 и Haxe, чтобы сравнить производительность Nape на iPad 3.

Читать дальше →

Adobe Air 4 & Flash Player 12


Здравствуйте, господа разработчики!
Вопреки мнениям различных конокрадов — Adobe, как и раньше, продолжает инвестировать в Adobe Flash Runtime! Писать о каждом выходе очередной минор версии смысла нет. Но в этом случае — просто необходимо. Ведь повод для этого — Flash Runtime версии 12 и Air версии 4. Скачать можно как обычно из бета лаборатории labs.adobe.com

Под катом еще несколько строк текста.

Читать дальше →

Adobe Air заметки

В первую очередь это для самого себя. Чтоб не потерять мысли :)

Перечень иконок, предоставленные Colin Holgate, thank you :)


These are the Android sizes:

<icon>
 <image48x48>icons/48.png</image48x48>
 <image72x72>icons/72.png</image72x72>
 <image36x36>icons/36.png</image36x36>
 <image96x96>icons/96.png</image96x96>
 <image144x144>icons/144.png</image144x144>
</icon>

These are the iOS 7 sizes:

<icon>
 <image40x40>icons/40.png</image40x40>
 <image76x76>icons/76.png</image76x76>
 <image80x80>icons/80.png</image80x80>
 <image120x120>icons/120.png</image120x120>
 <image152x152>icons/152.png</image152x152>
 <image48x48>icons/48.png</image48x48>
 <image72x72>icons/72.png</image72x72>
 <image36x36>icons/36.png</image36x36>
 <image96x96>icons/96.png</image96x96>
 <image29x29>icons/29.png</image29x29>
 <image57x57>icons/57.png</image57x57>
 <image114x114>icons/114.png</image114x114>
 <image512x512>icons/512.png</image512x512>
 <image50x50>icons/50.png</image50x50>
 <image58x58>icons/58.png</image58x58>
 <image100x100>icons/100.png</image100x100>
 <image144x144>icons/144.png</image144x144>
 <image1024x1024>icons/1024.png</image1024x1024>
</icon>


— Для тех, кому нужна AS3 справка в offline — можете скачать ее тут help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/standalone.zip

— Есть такая клевая игра SnailBoy www.youtube.com/watch?v=6PVTAI0C_og и у нее последнее время пошло много негативных отзывов. Игра на Air 3.9, Starling, Nape и т.д. Причину отзывов я решил уточнить у ее автора. Оказалось 60 000+ пользователей (со слов автора игры) жаловались не на краши (их было всего 5 штук), а на невозможность загрузки уровня. Игра зависала. Автор игры заверил меня, что это не Air виноват, а он допустил косяк в коде и сейчас вопрос решен )

— Когда необходимо поменять цвет StatusBar на iOS с черного на белый — в XML дескрипторе добавляем:

UIStatusBarStyle
UIStatusBarStyleLightContent

— В Air IPAInfoPlist.java поменять XCode идентификаторы на 5.0 (сейчас 4.5)

— При сборке через коммандную строку можно настраивать уровень оптимизации и инлайна кода. А еще… можно невероятно уменьшать размер файла. Но с этим надо работать — мне просто лень ковыряться в ядре Air. Можно отрезать внеднерние frameworks встроенных в cборку.

— Air так долго делает сборку под мобилы лишь потому, что из файлов 5-20 мегабайт делается бинарник сжатый arсlite'ом

— Во время компиляции приложений Adobe Air iOS — создается байткод на ассемблере и он же собирается. При желании его можно выкусить и восстановить вручную и получить исходниник Adobe Air для iOS. Впринципе это можно делать полностью через коммандную строку. Не так, как обычно это делается. Я имею ввиду, что с помощью разных as-arm.exe, arm-apple-darwin9-as.exe, ld64.exe и т.д. идущик в комплекте с Adobe Air. Мало кто в реальности поманиет сложность и гениальность создания компилятора под iOS из под Windows. Unity3D это не просто так не могут сделать. Они будут приводить разные отмазки на этот счет. Но… просто у них видимо все на Mac OS работают и они решили не париться на этот счет :)

p.s. постепенно буду дополнять

Adobe AIR + Nape Physics. Разработка под iOS.

Итак, недавно я купил Mac mini, т.к. давно мечтал заняться портированием одной из своих игрушек под iOS. Вопрос стал в выборе платформы, и я какое-то время склонялся к Adobe Air, пока не копнул глубже…



На днях у нас была локальная «конференция» из пяти человек в одном из питерских баров KillFish. И там мы обсудили мельком и Air, и Unity, и Cocos2d, и прочее… Я голосовал за AIR, т.к. думал, что раз уж «Angry Birds: Star Wars» сделана на Starling + Air, и она летает с приличным количеством физики и эффектов — значит, это мой выбор! Тем более, многие видели демки на Starling, где в iOS мы наблюдаем сотни анимированных объектов со стабильными 60 fps. Но на деле… всё упирается в физику.

З.Ы. ДАННЫЕ В СТАТЬЕ ОБНОВЛЕНЫ!!!

Читать дальше →

Создание Native Extension для Android на Java и ActionScript 3

3
Наверняка, многие, кто разрабатывает мобильные игры на AIR используют расширения называемые Native Extension. Но не все знают, как эти расширения делаются. Об этом я расскажу в данном уроке. Материал очень подробный, но простым я его назвать не могу. Установку и настройку FlashDevelop + Flex SDK + AIR SDK я опущу, в отличии от установки и настройки Eclipse + Android SDK.

Что такое Native Extension и зачем он нужен?


Adobe AIR с версии 3.0 поддерживает специальные расширения(собственно Native Extensions). Они позволяют AS3 взаимодействовать с собственным кодом платформы, под которую написано AIR приложение. Нативный язык позволяет полноценно работать с api операционной системы, а AS3 может взаимодействовать с нативными кодом. То есть можно работать с любыми функциями API платформы через AS3. На данный момент поддерживаются Windows, OSX, iOS и Android. Мы будем писать небольшое расширение на Java+AS3 под платформу Android. Делается это следующим образом: пишется AS3 код, пишется java код, запаковывается в библиотеки и специальным образом компилируется через adt. Звучит просто, но на деле всё немного сложней. Потребуется довольно большое количество инструментов и различных настроек.
Читать дальше →

Создание простой игры для Android на AIR. Часть вторая

1
Часть первая

Продолжаем делать нашу «игру». В этой части рассмотрим вибрацию, акселерометр, локальное хранилище. Понадобится исходник из прошлого урока, будем его дорабатывать.

Вибрация.


Сделаем так, чтобы при попадании красного айтема на платформу срабатывала короткая вибрация. Но вот проблема — у AIR нет доступа к API вибрации. На помощь приходит замечательная вещь под названием Native Extension. Native Extension — это средство для взаимодействия ActionScript 3 кода с собственным кодом разработки для платформы, на которой запускается приложение. Для Android — это Java. На этом языке разрабатываются нативные приложения для андроида. Каждое расширение(extension) состоит из двух частей — собственного кода платформы и AS3 кода. Всё это упаковывается в файл с расширением ane, который подключается к проекту. Также расширение имеет идентификатор, который нужно прописать в application.xml. Таким образом Native Extension позволяет получить доступ к API операционной системы через ActionScript 3. Выходит, что нам нужно написать расширение на Java и AS3 код. В случае с вибрацией этого делать не придётся, так как добрые разработчики из Adobe уже написали это расширение. Надо только им воспользоваться.

Читать дальше →

Создание простой игры для Android на AIR. Часть первая

Вместо вступления.


Приветствую всех.
Этот урок был написан в марте 2012. Сейчас я решил опубликовать его на данном ресурсе. Код решил не менять, прошу сильно к нему не придираться(сам бы придрался). Немного доработан сам текст урока и комментарии в коде. Цель урока — не научить делать игры, что в рамках одного урока само по себе невозможно, а продемонстрировать основы работы с мобильным AIR. Почему именно Android, а не ios? Потому что на момент написания урока под рукой был только он. Под ios всё делается практически так же, но есть некоторые отличия, о которых написано в конце второй части урока.
Буду рад любым комментариям, замечаниям, указанием на ошибки.

Немного теории.


Adobe AIR позволяет создавать на ActionScript 3 и MXML для iOS и Android приложения, которые для пользователя ничем не будут отличать от нативных. Их, как и любые нативные приложения, можно распространять через фирменные магазины приложений Apple AppStore и Google Play Store (бывший Android Market). С версии AIR 3.2 появилась поддержка Stage3D. Для работы AIR приложения на Android нужно установить на устройство AIR Runtime, или же при компиляции в captive-runtime среда выполнения вшивается в apk. При этом установка AIR Runtime на девайс не требуется.

При работе с мобильными устройствами стоит учитывать, что разрешения их дисплеев ниже(уже есть и такие, у которых выше), чем у мониторов компьютеров и их физические размеры тоже значительно меньше. Также есть такие понятия, как «физический размер пикселя» и «плотность пикселей», поэтому нужно уделить внимание размеру различных графических элементов(кнопок, персонажей игры и т.д.). В общем, это целая наука и мы не будем останавливаться на ней подробно.
Метод ввода — сенсорный дисплей. Для обработки сенсорного ввода существует специальное событие TouchEvent, хотя и события мыши обрабатываются корректно. Также есть другие особенности, о которых я расскажу в ходе урока.

Читать дальше →

Пишем приложение AIR под iOS: работаем с касаниями и акселерометром.

flash ios adobe airВ этом несложном уроке я покажу работу flash.ui.Multitouch и flash.sensors.Accelerometer на примере тестового приложения Air для iOS.
 

Читать дальше →

Крашится iIPA.exe? Исправим!

Удобная штуковина этот дебаг на устройстве через USB! Flash Builder даже сам устанавливает приложение.
Но вот вчера я столкнулся с тем, что некий iIPA.exe стал вылетать под Windows 7, тем самым наламывая весь кайф.
Решение было найдено такое:

  1. заходим в папку [Flash Builder Folder]\eclipse\plugins\com.adobe.flash.compiler_4.7.0.345990\AIRSDK\lib\aot\bin\iOSBin
  2. правой кнопкой по iIPA.exe выбираем «Свойства»
  3. во вкладке «Совместимость» ставим галочку на «Запустить программу в режиме совместимости с:» и выбираем из списка «Windows 7»

Проблема решена!