Что дальше?

Приветствую друзья!

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

Начну с плохой. Должен вас разочаровать, но будущее браузерного флеша предопределено… Грядущее обновление Google Crome в 2017 году ускорит процесс отмирание последних клеток платформы. Конечно за 1 год убить платформу которая существовала более 10 лет невозможно, старые проекты по инерции будут работать еще очень долго, используя различные костыли. Но то что новые проекты делать на флеше смысла нет – это абсолютно точно, а это значит что потребность во флешерах будет постепенно падать. Но не стоит расстраиваться, вы все еще можете заниматься разработкой мобильных игры на AIR-e используя язык ActionScript. Если же вам больше нравится заниматься браузерными играми, вы можете изучить JavaScript, современные JS-интерперетаторы в браузерах довольно шустрые, и уже сейчас можно делать довольно крутые игрушки на Canvas/WebGL. Существует масса движков для быстрой разработки Canvas/WebGL игр.

А теперь хорошая. За все время работы с флешом у меня скопилось большое количество игр, которые продолжают жить и посей день, и было принято решение переписать их на JavaScript/Canvas чтобы немного продлить им жизнь. Я решил создать новый блог, посвященный JavaScript разработке браузерных игр. В этом блоге я буду рассказывать как конвертировать существующий флешовый контент(в том числе сложные анимации) в JS формат для использования в Canvas, буду писать свои мысли после знакомства с различными движками, буду выкладывать свои библиотеки для упрощения работы с JS… Кому это интересно добро пожаловать на http://abdulgalimov.com. Там уже есть 2 статьи, на тему конвертирования контента, и 1 статья для демонстрации возможности JavaScript/Canvas, в которой я показал как загрузить в JS флешовую анимацию.

Так, а теперь соберись и не кисни! прорвёмся!
Го за книжкой по JavaScript и продолжаем делать крутые браузерные игрушки :)

Эту статью прочитали 894 раз

143. Debug FlashPlayer в Chrome браузере

debug_fp_chrome_0

Всем привет!
Я уже очень давно пользуюсь браузером Firefox, и Chrome запускаю крайне редко. И поэтому я как то упустил момент когда гугл решил не пускать debug-плеер в браузер Chrome. Покопавшись в сети, я нашел способ, если вам интересно знать как это сделать для Windows и OSX, читайте далее.

Читать далее
Эту статью прочитали 3937 раз

142. [ANE] Ошибка с ресурсами при сборке ANE для Android

Android – Все о разработке для Android, в том числе про нативные расширения ANE
http://flashpress.ru/blog/category/mobile/android/

Приветствую, друзья!
Статья будет полезна разработчикам ANE библиотек для Android. Собрав библиотеку для Android, на OSX приложение компилировалось нормально, но при попытке собрать .apk на Windows увидел следующую проблему:

aapt tool failed:C:\Users\Support\AppData\Local\Temp\850ed517-21b4-4324-9a64-20869be0c997\app_entry_res\values\strings.xml:19: error: Resource at app_version appears in overlay but not in the base package; use to add.

ane-resource-error1

Т.е. сборщику не хватает каких то ресурсов. Для решения проблемы в моем случае оказалось достаточно внедрить в ANE каталог res/values внутри которого лежит файл strings.xml следующего содержания: Читать далее
Эту статью прочитали 2181 раз

141. [warning] Особенности написания ANE для Android

Warning – Стоп! Будьте внимательны, впереди аварийно опасный код.
Посмотреть все статьи серии: http://flashpress.ru/blog/category/warning/
Android – Все о разработке для Android, в том числе про нативные расширения ANE
http://flashpress.ru/blog/category/mobile/android/

Друг, если когда нибудь ты захочешь написать ANE для Android, помни что если ты создал переменную Boolean value и не задал значение(true или false), тогда проверять if(value) нельзя, потому что Google скажет “ой все” и закроет приложение !!!

Не знаю, может быть это какая то особенность java, но я убил на это 2 часа дописывая последние штрихи своей первой ANE для Android, вот этой вот http://flashpress.ru/blog/ane/audience-network/ :)

Читать далее
Эту статью прочитали 1397 раз

140. [ANE] Просмотр нативных логов в iOS приложении

Adobe Native Extensions – Нативные расширения для платформ iOS
http://flashpress.ru/blog/category/ane/

А вы знаете что из flash-приложения можно увидеть нативные логи, которые создаются методом NSLog в iOS приложениях? Для чего это нужно? Ну например для отладки своих нативных расширений, когда нет возможности подключить Xcode чтобы увидеть логи. Ну хорошо, если вы разрабатываете нативные расширения, значит у вас наверняка есть под рукой Xcode и вы и так не плохо умеете смотреть нативные логи… Но вот другой пример, разрабатывая библиотеку для работы с рекламой Facebook наткнулся на следующую проблему: у Facebook SDK есть метод который активирует тестовый режим, но вот беда, чтобы активировать его, необходимо вызвать специальный метод и передать туда deviceHash, который почему то пишется только в NSLog-ах. Получается что пользователь использующий в своем приложении ANE-шку для работы с рекламой Facebook никак не сможет активировать тестовый режим если у него нет Xcode. Думаю достаточно болтовни, давайте ближе к делу.

Следующий пример показывает как можно посмотреть нативные NSLog-и в AIR приложении с помощь ANE библиотеки FPNativeLog:

Библиотека может видеть все вызовы NSLog() сделанные в текущем приложении: другими SDK, ANE и т.п. Скачать библиотеку и посмотреть документацию можно на странице библиотеки FPNativeLog.

Да прeбудет с вами Flash.
Serious Sam
Эту статью прочитали 1503 раз

139. [ANE] Подключаем iCloud к мобильному приложению. Нативное расширение

Adobe Native Extensions – Нативные расширения для платформ iOS
http://flashpress.ru/blog/category/ane/
UPDATE: Новая версия библиотеки http://flashpress.ru/blog/ane/iCloud/

После долгих поисков библиотеки для работы с iCloud в iOS приложении, нашел только решение от Vitapoly. К сожалению предлагаемое ими решение платное (20$) и к тому же форум у них мёртвый :( . При всей моей неприязни к Objective-C, пришлось писать нативное расширение самому, что в итоге получилось – читайте далее.

Читать далее
Эту статью прочитали 1826 раз

138. [game, ANE] XProject1. Нативное расширение для работы с галлереей и камерой

Game – Серия статей посвященных разработке flash-игр на языке ActionScript. Игры для соц.сетей и мобильных платформ iOS, Android.
http://flashpress.ru/blog/category/game/
Adobe Native Extensions – Нативные расширения для платформ iOS
http://flashpress.ru/blog/category/ane/

Суть проблемы

В приложении необходимо было загрузить фотографию из альбома и сохранить в каталоге приложения, для дальнейшей работы с этой фотографией. Во флеше есть класс CameraRoll который умеет загружать фотографии из вашей фотопленки, и есть еще класс CameraUI, с помощью которого можно сделать фотографию с помощью камеры. Эти классы показывают нативные окна операционной системы и прекрасно справляются со своей задачей. Но в моем приложении необходимо было загрузить фотографию и сохранить ее в каталоге приложения, что бы после выхода из приложения можно было продолжить работу с фотографией. Первым делом я загрузил фотографию с помощью класса CameraRoll, попытался конвертировать в ByteArray с помощью PNG-энкодера и сохранил байтовый массив с помощью класса File. В итоге получил проблему с производительностью, процесс сохранения на моем устройстве происходил очень долго. В итоге решил написать ANE-библиотеку для iOS.

Читать далее
Эту статью прочитали 1627 раз

137. [game] XProject1. Обработка Touch-событий на мобильной платформе

Game – Серия статей посвященных разработке flash-игр на языке ActionScript. Игры для соц.сетей и мобильных платформ iOS, Android.
http://flashpress.ru/blog/category/game/

Суть проблемы

В стандартной событийной модели ActionScript имеются некоторые неувязки при использовании touch-событий.
Например, в моем приложении необходимо было использовать событие зума TransformGestureEvent.GESTURE_ZOOM (сведение/разведение двух пальцев на сенсорном экране), а для того, чтобы это событие стало доступным, необходимо включить специальный input-режим:

, который в свою очередь отключает поддержку touch-событий TouchEvent, которые необходимы для обработки одиночных касаний на экране.
Другая проблема: в приложении есть визуальный компонент, который может обрабатывать сразу несколько touch-событий:

  • Таскание элемента вверх/вниз – скролл
  • Таскание элементы вправо/влево – чтобы скрыть его
  • Одиночное касание пальцем над элементом

Проблема в том, что если пользователь начал двигать элемент в одном направлении(например вверх или вниз), то остальные события(таскание влево/вправо и одиночное касание) не должны срабатывать до тех пор, пока пользователь не отпустит палец с экрана.

Третья проблема заключается в том, что стандартные touch-события нельзя тестировать в обычном flash-приложении(не мобильном).

Читать далее
Эту статью прочитали 2353 раз

136. [AIR, ANE] Нативный загрузчик

Использование Adobe AIR для написания мобильных приложений и не только.
http://flashpress.ru/blog/category/mobile/
Adobe Native Extensions – Нативные расширения для платформ iOS
http://flashpress.ru/blog/category/ane/

Попалась на глаза сегодня интересная статья . Автор собрал Нативное расширение ANE для iOS для отображения процесса загрузки. Интерес этого расширения в том, что когда во флеше выполняются сложные операции, которые грузят процессор, то все флешовые анимации начинают тормозить(если вовсе не остановливаются), а вот предлагаемое нативное расширение продолжает показывать плавную анимацию. Я пожалуй возьму себе на вооружение в свой текущий проект, ибо есть места где процессор нагружается не слабо :) .

Автору респект! Ждем аналогичное расширение для Android.

Да прeбудет с вами Flash.
Serious Sam
Эту статью прочитали 1172 раз

135. [game] XProject1. Распределение элементов вокруг заданной точки

Game – Серия статей посвященных разработке flash-игр на языке ActionScript. Игры для соц.сетей и мобильных платформ iOS, Android.
http://flashpress.ru/blog/category/game/

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

Содержание:

Суть проблемы

Есть массив визуальных элементов. Необходимо их распределить равномерно около заданной точки. Распределять их случайно через Math.random() не вариант, потому что элементы часто местами кучкуются, а местами образуются пробелы, а хочется что бы элементы распределялись равномерно. И еще важно что бы элементы не пересекались, в случае простого рандома этого добиться будет проблемно.

Вот как выглядит случайно распределение используя Math.random() (Нажмите кнопку allocation для распределения элементов):

Здесь должна быть флешка. Установите Flash Player

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

Читать далее
Эту статью прочитали 2351 раз