Adobe AIR iOS / Android - лучшее событие для прослушивания в AS3 - PullRequest
0 голосов
/ 12 января 2012

Итак, у меня возникла проблема, когда мне нужно, чтобы событие возникло в самом начале моего приложения.

public function Main() {    
            this.addEventListener(Event.ACTIVATE, onInit);
        }

Я также пробовал Event.ADDED_TO_STAGE, но оба, похоже, не запускают onInit.в нужное время ... они стреляют слишком рано.Например, при тестировании на IPhone он срабатывает, когда я все еще вижу значок Default.png ... Я хочу, чтобы он срабатывал, когда завершена фаза "загрузки".

Ответы [ 3 ]

1 голос
/ 06 апреля 2013

У меня есть решение вашей проблемы, если я хорошо понимаю. Я пришел к этой теме, ища то же самое, но приведенные выше ответы не были исправлением, поэтому я взял дело в свои руки. Чего я хотел добиться, так это получить быстрый запуск моего приложения с «заставкой». Затем, как только мое приложение было запущено «полностью» (под «полностью» я имею в виду, когда анимация Android для его запуска закончилась, и я на самом деле видел пиксели моего заставки), я захотел вызвать мою «функцию инициализации», чтобы запустить тяжелый код загрузки активов / генерации материала (поэтому избегая длинного черного экрана). НЕТ события, чтобы вызвать это в нужное время. Все они запускаются рано, потому что андроид должен загрузить все приложение при запуске, прежде чем отображать какие-либо реальные пиксели из него. Все они запускаются в ближайшее время, в отличие от среды рабочего стола, когда комбинация event.ACTIVATE и event.FRAME_CONSTRUCTED / event.RENDER или onEnterFrame сделали свое дело.

Решение: Используйте загрузчик SWF в качестве основного приложения. Загрузите ваше приложение в загрузчик. Android сначала загрузит ваш загрузчик и позволит flash визуализировать сцену в тот момент, когда у вас будет ваше «любимое» событие: D. Если вы думаете, что это решит вашу проблему, но вам нужна дополнительная помощь, я буду рад разъяснить подробнее.

0 голосов
/ 26 января 2012

«Самое начало» должно быть определено лучше :) События Activate, Invoke и Added to Stage запускаются на разных этапах начала вашего приложения.Если вы хотите подождать, пока приложение действительно появится на экране, вам следует дождаться ввода кадра или события рендеринга.

0 голосов
/ 18 января 2012

Вы проверили это:

Посмотрите в AIR API, а не в пакете Events. Здесь и здесь .

...