Adobe Flex Mobile Фоновый процесс - PullRequest
0 голосов
/ 06 апреля 2011

Каково лучшее решение для многопоточности в flex, я замечаю, что я играю mp3 на flex и делаю что-то еще в то же самое время, когда что-то перестает выдаваться, либо песня перестает воспроизводиться, либо пользовательский интерфейс зависает из-за расколавторой.У него нет такой плавной реакции, которой я хочу добиться.Если возможно, я бы хотел вызвать многопоточный Java-класс, чтобы выполнить часть серверной обработки на стороне клиента.Я просто не знаю, возможно ли это.Любое понимание будет высоко ценится, я застрял на этом.

-Phil

Ответы [ 5 ]

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

Flex / Flash сам по себе не поддерживает многопоточность - Adobe продолжает утверждать, что многопоточность не является необходимой для большинства потенциальных приложений Flex и просто слишком усложнит среднестатистического разработчика Flex.

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

Теперь к Java - использование нативного процесса api может заставить его работать. Процесс Java берет на себя некоторую часть обработки, и вы управляете его рабочей записью и чтением из потоков ввода / вывода, которые связаны между процессом Java и приложением flex. Другой возможностью может быть межпроцессное взаимодействие с сокетами (сделал это сам до того, как появился нативный процесс API - работает!)

0 голосов
/ 15 июня 2011

Также имейте в виду, что проигрыватель отладки ведет себя совершенно иначе, чем стандартный проигрыватель, и (отдельная проблема), что во время сеанса отладки, существенное замедление может быть заметно с критичным к производительности кодом ... Только верьте плагину браузера, не отладочная версия, работает в браузере, не отладка. Это единственный надежный тест. Я видел скорость в 25-30 раз, просто переключившись на релиз-плеер (крайний случай). Думаю, у меня были серьезные проблемы с производительностью, но на самом деле это не так:

0 голосов
/ 14 июня 2011

Вот довольно полная библиотека «Greean Thread» - http://blog.generalrelativity.org/actionscript-30/green-threads/

Я считаю ее полезной, поскольку независимо от взглядов Тома, потоки, скорее всего, часто являются необходимыми вещами, которые не поддерживаются должным образом (пока??)

0 голосов
/ 08 апреля 2011

Flex / Flash не имеет методов блокировки и поэтому не требует многопоточности, просто вызовите функцию в таймере или на EnterFrame, и убедитесь, что она дает менее 25 мс или около того.Что касается скорости, Java (работающая на Android-Dalvik VM) не намного лучше ... C - единственный вариант максимальной скорости.

0 голосов
/ 07 апреля 2011

Если пользовательский интерфейс зависает, у вас есть другая проблема.Мне кажется, что вы просматриваете какие-то данные, чтобы сделать это "отставание".Что вы можете сделать, так это лучше отформатировать данные, чтобы не сталкиваться с этим.Или посмотрите, какой процесс вы запускаете, когда происходит зависание, и оптимизируйте его лучше.

...