Кого больше — людей, что хотят прочесть новую статью Бориса 'Buran' Внукова "Запуск внешнего приложения из Adobe Air и другое interconnectivity" или же тех, кто уже давно, еще с прошлого воплощения "програмист на VBA", мечтает попасть на работу Flex-разработчиком в TeamDev? Не знаю. Внуков пишет в редакцию сайта Ф. Потрошителя:
"... Накропал статеечку по поводу вызова внешних приложений из Air. Это сборник полезных (надеюсь) советов о том, как можно запустить внешнюю программу из AIR-приложения. Хочу поделиться с общественностью своими изысканиями, либо услышать: "БАЯН" :)"
В своей статье Борис, он же "nanoFlex.e.r" сначала категорически огорчается, но тут же немедленно излагает 5 (пять) способов запуска внешних приложений из приложения Adobe AIR.
серверок, это не решение, но костыль. сразу отваливается суть флеша и аира - скомпилируй раз, запускай везде. хотя с другой стороны серверок можно написать на java, но я думаю не всякий пользователь будет рад, предложению скачать сначала AIR и после запуска приложения скачать JRE.
Не совсем в эту тему, но где-то рядом:) может, кому пригодится: как запускать из projector'овского exe (которые под 9 плеер) батники и др. файлы с параметрами. http://fishbounce.blogspot.com/2008/05/fscommand-exec.html схема запутанная, но работает:) смысл такой: мы копируем наши параметры в clipboard, затем запускаем executor.exe, который позволяет нам запустить наш executor.bat. В котором, в свою очередь при помощи sfk.exe мы вызываем необходимый target_file.exe с параметром, вытащенным из windows clipboard.
Да, костыль, собственно поэтому долго лазил по интернету пржде чем реализовывать это решение (тривиальное по сути , но геморройное и не универсальное по исполнению). Но. Лучше без ноги, но с костылём, чем без костыля и без ноги :) Или я не прав? А серверок и под линуксом можно наструячить - и гораздо быстрее чем под виндой :). Вот, а ещё мне подкинули тему что как-то можно заюзать localConnection для общения с флэшкой - очень интересно, копаю.
а костыль на C (серверок) можно скомпилять под несколько платформ соответственно завернуть их все в .air пакедж и запускать нужный
На счет Shu плеера, была тема на flasher.ru, в саппорте помогли : http://www.flasher.ru/forum/showpost.php?p=764523&postcount=6
Довожу до вашего сведения, что это нифига не будет работать на не-виндусе, что печально.
И в принципе AIR не предназначен для этого, приложения должны быть универсальными, безопасными и безо всяких заморочек. Ежели оно сможет что угодно запускать, то это security hole, разве нет? =)
Может кто-то напишет подробно как запаковать в .air левый экзешник? И что-бы он установился air инсталлятором и при запуске запускал сервис, который запускает swf и при выгрузке аналогично выгружался? Я себе этого не представляю.
to fzn7: В своём случае я отказался от AIR инсталлятора и заюзал NSIS. Суть установки довольно простая - нужно распаковать всё то что лежит в .air файле (а это обычный zip архив на самом деле) куда нибудь, ну и заодно можно отдетектить наличие AIR Runtime и если его нет установить. NSIS`у можно сказать чтобы ярлык он создавал не на AIRовский exe, а на "левый". А дальше вообще никаких проблем. И, кстати, даже родным AIR-инсталлером легко можно запаковать левый exe-шник. Мой Flex Builder постоянно спрашивает при релизе приложения : "Не докидать ли в дистриб до кучи ещё чего к делу не относящегося?".
to Ptath: ну а если надо? :) вот написано куча кода, которая работает и выглядит красиво. А есть ещё другая куча кода не мной написанная, но тоже безмерно крутая и на Java при этом. А вместе они сливаются в экстазе и порождают новую феерическую функциональность. И делать ничего не надо. Только одного нехватает, interconnectivity. Где костыль, подать его сюда! :)
Еще на счет Shu плеера.Размер ехешника бльшой очень получается, лучше пожать UPX.Работает все-таки еще и под МАСом.Триал режим правда надоест своим нагом.Но оказывается!- если положить в папку \Local Settings\Application Data\Shu, файл config.cfg с таким содержанием:[registration] name=tester@rol.ru type=F version=100 key=F100-9987-1348 [paths] runtime=C:\\Program Files\\Common Files\\Adobe AIR работает и больше не ругается! Чудеса?!
name=tester@rol.ru type=F version=100 key=F100-9987-1348 [paths] runtime=C:\\Program Files\\Common Files\\Adobe AIR
Чудеса! Очень полезная инфа, спасибо!
to buran: Если нам нужно приложение Windows, то проще использовать Delphi и не мучаться. Но какой в этом смысл? Пока единственный удобоваримый вариант это merapi, но там тоже не решена проблема распространения (кроссплатформенные инсталляторы?). Однако в этом случае AIR перестает играть роль самостоятельной платформы при этом добавляя 9 метров к весу дистрибутива (зачем?).
to fzn7: Чтобы переписать на "дельфи", то, что уже написано на AS и можно использовать - мне нужно потратить минимум месяца 3-4. Или потратить несколько часов на поиск и сооружение костыля, который в данном конкретном случае решает все поставленные перед ним задачи. Я выбрал второй вариант и подумал, что раз у меня такой вопрос возник - он может возникнуть и у других. А по поводу "только windows" - это вопрос ещё получаса кодинга под linux'ом (под MAC правда никогда ничего не кодил, но мне кажется, что и там похожее время необходимо на разработку микросервера).
to buran: Я говорю о возможности вообще, а не про ваш конкретный проект, так-что без обид.