Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Проектор через Flash Builder (http://www.flasher.ru/forum/showthread.php?t=214103)

djken 14.04.2017 12:32

Проектор через Flash Builder
 
Всем привет.
Нужно SWF сконвертировать в EXE и APP со встроенным Flash Player версии >= 20.0.
Конвертация из под 11 версии плеера работает без проблем, но мне нужная более свежая версия, так как с этой имеются небольшие баги. А в плеерах следующих версий, насколько я понял, возможность создания проектора намеренно отключена Адобовцами.
Попробовал во Flash CS6 в директории Players подменить плеер на сежий - отлично работает, Flash IDE создает проекторы с новым плеером. Но вся разработка у меня ведется во Flash Builder 4.7, как теперь проект сконвертировать под Flash CS6 ? Или может прямо из под FB можно как-то создавать проектор, что, думаю, вряд ли?..

P.S. повозился с проектором под Mac. Конвертирую из под Flash IDE пустой проектор со свежим плеером. В Resources просто подменяю movie.swf на свой и готово - все работает. Но опять же - с проектором под Win такого не проделаешь, там прийдется проводить более серьезные манипуляции...

Насколько я понял, вообще десктопные приложения лучше создавать используя Adobe AIR? Но этот AIR должен быть также установлен на машине пользователя, чтобы приложение работало. Возможно его так же можно встраивать.. Посоветуйте пожалуйста. Уже около 10 лет занимаюсь разработками, но только сейчас пытаюсь разобраться что такое Flex SDK, Air SDK, RIA и т.д. Для меня все эти аббревиатуры до недавнего времени были лесом, не вникал особо...

caseyryan 14.04.2017 13:50

У AIR есть 2 типа упаковки. Shared Runtime - когда нужно заранее установить среду на комп
и Captive Runtime, когда все необходимое сразу вшивается в исполняемый файл.
У второго варианта есть лишь один недостаток по сравнению с первым - это увеличение размера файла примерно на 15 - 17 мегабайт. Но, по современным меркам, это ничто. При желании можно и у exe / app упаковать. При таком способе упаковки (с профилем extended desktop) у программы появляется возможность делать запросы к стандартному терминалу или командной строке операционки, что очень сильно увеличивает функционал.
AIR во всех отношениях лучше проектора, видимо по этому проекто и грохнули в новых версиях

djken 14.04.2017 15:26

Я так же предположил, что проектор был убран в поддержку AIR.

Цитата:

У второго варианта есть лишь один недостаток по сравнению с первым - это увеличение размера файла примерно на 15 - 17 мегабайт
С флэш проектором вес вообще на 36 мб увеличивается...

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

alexandrratush 14.04.2017 21:38

Цитата:

немного смутила XML-подобная структура, в которой тут же обработчики навешивают - не привычно.. ))
Это вы MXML смотрели.)
Можно писать на чистом AS3.

caseyryan 16.04.2017 09:25

Цитата:

Сообщение от djken (Сообщение 1200187)
Я так же предположил, что проектор был убран в поддержку AIR.


С флэш проектором вес вообще на 36 мб увеличивается...

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

Разработка под AIR и под флеш плеер практически ничем не различаются. В AIR разве что работа с файловой системой доступна

djken 21.04.2017 01:09

Цитата:

У AIR есть 2 типа упаковки. Shared Runtime - когда нужно заранее установить среду на комп
и Captive Runtime, когда все необходимое сразу вшивается в исполняемый файл.
caseyryan, опробовал все варианты.

Signed AIR Package удобно конечно - сразу с инсталятором, но мне не нравятся предупреждения о неизвестном происхождении приложения при инсталляции. Про сертификат понял, что это как минимум 60$ и не так просто получить.. И главный минус - будет работать только с предустановленным AIR у пользователя. Поэтому этот способ отметаю...
Signed native installer - с готовым инсталятором, заточеным под определенную ОС. Но тут тоже без встроенного плеера AIR..
Signed with captive runtime упаковывает в файл .app либо .exe вместе со встроенным плеером. Этот вариант более подходящий. Нужно только создать инсталятор под Mac и Win. Под Windows порылся - наверно Inno Setup неплохой. Под Mac вроде бы можно создать штатными средствами через Дисковую Утилиту либо через AppleScript.
1) Что посоветуешь по поводу своего инсталятора?

2) Чтобы сделать под Windows - как я понял, нужно компилировать и упаковывать именно в этой ОС ? Если да, то нужно устанавливать FB в Windows или, насколько я догадываюсь, можно через командную строку в adl упаковать, установив только AIR SDK ?

caseyryan 21.04.2017 05:51

Не знаю, я не использую FB. Но FlashDevelop умеет паковать в нативный установщик без каких-либо сторонних приложений средствами самого AIR. Я б даже сказал, для этого можно обойтись одной лишь командной строкой. Правда и в первом и во втором случае, придется писать скрипт, так как встроенных нигде нет.
Я немного переделал стандартные скрипты FD, чтобы она умела поковать в exe
PackagerEXE.bat
Код AS3:

@echo off
 
:: Set working dir
cd %~dp0 & cd ..
 
if not exist %CERT_FILE% goto certificate
 
:: AIR output
if not exist %AIR_PATH% md %AIR_PATH%
set OUTPUT=%AIR_PATH%\%AIR_NAME%%AIR_TARGET%.exe
 
:: Package
echo.
::echo Packaging %AIR_NAME%%AIR_TARGET%.air using certificate %CERT_FILE%...
echo Packaging %AIR_NAME%%AIR_TARGET%.exe using certificate %CERT_FILE%...
call adt -package %OPTIONS% %SIGNING_OPTIONS% -target native %OUTPUT% %APP_XML% %FILE_OR_DIR% -extdir lib/
if errorlevel 1 goto failed
goto end
 
:certificate
echo.
echo Certificate not found: %CERT_FILE%
echo.
echo Troubleshooting:
echo - generate a default certificate using 'bat\CreateCertificate.bat'
echo.
if %PAUSE_ERRORS%==1 pause
exit
 
:failed
echo AIR setup creation FAILED.
echo.
echo Troubleshooting:
echo - verify AIR SDK target version in %APP_XML%
echo.
if %PAUSE_ERRORS%==1 pause
exit
 
:end
echo.

PackagerPC.bat
Код AS3:

@echo off
if not exist %CERT_FILE% goto certificate
 
:: AIR output
if not exist %AIR_PATH% md %AIR_PATH%
set OUTPUT=%AIR_PATH%\%AIR_NAME%%AIR_TARGET%.air
 
:: Package
echo.
echo Packaging %AIR_NAME%%AIR_TARGET%.air using certificate %CERT_FILE%...
call adt -package %OPTIONS% %SIGNING_OPTIONS% %OUTPUT% %APP_XML% %FILE_OR_DIR%
if errorlevel 1 goto failed
goto end
 
:certificate
echo.
echo Certificate not found: %CERT_FILE%
echo.
echo Troubleshooting:
echo - generate a default certificate using 'bat\CreateCertificate.bat'
echo.
if %PAUSE_ERRORS%==1 pause
exit
 
:failed
echo AIR setup creation FAILED.
echo.
echo Troubleshooting:
echo - did you build your project in FlashDevelop?
echo - verify AIR SDK target version in %APP_XML%
echo.
if %PAUSE_ERRORS%==1 pause
exit
 
:end
echo.



PackageAppPC.bat
Код AS3:

@echo off
set PAUSE_ERRORS=1
call bat\SetupSDKPC.bat
call bat\SetupApplicationPC.bat
 
 
:menu
echo .
echo Choose what you want
echo [1] normal .AIR
echo [2] exe with included AIR runtime (captive), no installer
echo .
 
:choice
set /P C=[Choice]:
echo.
 
::set AIR_TARGET=-captive-runtime
set OPTIONS=-tsa none
 
if "%C%"=="1" call bat\PackagerPC.bat
if "%C%"=="2" call bat\PackagerExe.bat
 
::set AIR_TARGET=
::call bat\Packager.bat
 
pause

Теперь при паковке у меня есть 2 опции: паковать в AIR и в EXE

Но в итоге получится практически такой же установщик как в простом эйр, с предупреждением о том, что источник неизвестен. Меня это никогда не беспокоило. А в exe я пакую исключительно из-за того, что мне нужен режим extended desktop для работы с командной строкой винды. Если собирать в .air, то компилятор почему-то не дает установить режим extended desktop (не вдавался в подробности почему)


Часовой пояс GMT +4, время: 18:27.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.