Pull to refresh

Comments 18

Приятно, что кто-то помимо меня еще пишет на ActionScript/Flash :)
А у вас есть какие-то игрушки на as3 + starling? :)
У меня их много, но они все в «прототипном» виде. Т.е. чисто обкатка игровых механик, в виде далеком от релизного. Вот, например, наиболее презентабельная: elegar.ru/planet/

До аппстора я пока добрался только с одной игрой, но она пока недоступна, поскольку баг с адобским геймцентр.ане я обнаружил на следующий день после того как игра прошла ревью, эппловцы его пропустили:) Но я решил не релизиться в таком виде и теперь жду ревью апдейта.
Коллизия сделана по алгоритму пересечения кругов?

Кстати, попробуйте сделать сзади паралакс эффект ибо космос у вас красивый, а паралакс добавил бы динамику.
Кругов конечно, чего же еще?))

А как сюда можно добавить параллакс? Этот эффект появляется при движении камеры, а тут она статична.
> Кругов конечно, чего же еще?))
ну можно было бы по квадрату Rectange.intersect ну и конечно же тяжелый вариант попиксельно

>А как сюда можно добавить параллакс? Этот эффект появляется при движении камеры, а тут она статична.
Ну все объекты в космосе двигаются… ваша планета тоже может двигаться :)
В тот момент когда мы начинаем использовать нативные расширения наш код перестает быть кроссплатформенным.

Это не совсем так, ane может содержать бинарники для нескольких платформ (винда, мак, андроид, иос).
Может содержать, а может и нет, так что в общем случае — перестает:) К тому же, в любом случае, если это air application, то оно уже не будет запускаться в обычном swf-плеере… Блин, а вот про это забыл в статье написать, что немобильный проект — он еще еще и не AIR-app
Если разместить код по модулям, и для AIR специфики (например, сохранение в бд) писать в одном модуле, а для веб специфики его (например, сохранение в localStorage) писать в другом модуле с общим интерфейсом то можно делать сборки и для мобильный и для веб версий и для десктоп.
Не понял. Что такое модули?)
Но вообще я вроде как про что-то похожее в статье и написал: код имеющий отношение к эйру — в одних классах, не имеющий — в других. А чтобы по-быстрому между ними переключаться — разные файлы проектов со специфичными настройками и с разными документ-классами, которые как раз импортят специфичные классы.
К примеру нужны 2 версии ПО, одна для веб, другая для AIR, в обоих версиях нужно что то сохранять, в AIR можно в базу, в web в LocalStorage.
Делается swc модуль в которому описывается UI, логика и универсальный интерфейсы доступа к данным (API), делается swc с реализацией интерфейса в котором есть доступ к функциям AIR, в том числе и Native Extension (бд например) + делается swc в котором реализуется универсальный интерфейс для доступа к LocalStorage. Затем делаются 2 модуля swf, первый для мобильной версии (AIR) к которому подключается модуль с UI и логикой работы + модуль swc для доступа к бд, второй для веб версии, к нему подключается модуль UI и логикой и swc с доступом к LocalStorage. В итоге результат == UI и вся логика в одном месте (swc модуль), для разных платформ (как пример) реализация доступа к данным в разных модулях и 2 так сказать exe swf в котором несколько строк кода для соединения конкретного модуля с общим UI модулем под конкретную платформу.
Ну адоби там писали о методе isSupported, надо проверять доступен ли функционал, остальное на уровне билдов и модулей (я пользуюсь Intellij).

Вот так используется у нас:

package com.cost.guide.util
{
    import flash.system.Capabilities;

    public function Vibrate(duration:int):void
    {
        var isDesktop:Boolean = Capabilities.os.indexOf("Windows") != -1 || Capabilities.os.indexOf("Mac OS") != -1;
        if(!isDesktop)
        {
            vibrate(duration);
        }
    }

}

import com.adobe.nativeExtensions.Vibration;

/**
 * moved to separate method to avoid class not found error in emulator
 */
function vibrate(duration:int):void
{
    if (Vibration.isSupported)
    {
        var vibration:Vibration = new Vibration();
        vibration.vibrate(duration);
    }
}
Да, но для этого надо чтоб во-первых был этот isSupported, что на практике не всегда бывает:) В GameAnalytics SDK, например, этого метода нет.
А во-вторых, чтоб так делать, надо все-таки импортировать Vibration, а он не будет компилиться, если у вас не AIR application, а swf для флеш плеера. Т.е. под виндой собираться будет, но во флеш плеере работать не будет, а мне хотелось сохранить и эту возможность.
Да, естественно, просто так не будет компилится, но во флеше хватает для этого методов :) Модули в Intellij достаточно удобно позволяют это сделать, раньше делали через подключение разных сорцов во время компиляции, можно через импорты.
UFO just landed and posted this here
Попробовал. Упало на стадии упаковки со следующим текстом:
Undefined symbols for architecture armv7: "_traits:AOTBuildOutput-0000000100_33:22::CharLocation", referenced from: _AOTBuildOutput-0000000100_33:816:starling.text::BitmapFont/arrangeChars i n AOTBuildOutput-0000000100_33.o _AOTBuildOutput-0000000100_33:809:starling.text::BitmapFont in AOTBuildOut put-0000000100_33.o ld: symbol(s) not found for architecture armv7 Compilation failed while executing : ld64
Sign up to leave a comment.

Articles