Можете ли вы использовать Алхимию Adobe для выполнения командного файла? - PullRequest
2 голосов
/ 31 января 2009

Я собирался создать приложение AIR, но мне нужно выполнить внешнее приложение, и из-за ограничений безопасности в Adobe AIR ... я думал, почему бы не попробовать обойти его, написав код на C, который выполняет что-то вроде System («файл для выполнения»); а затем использовать Alchemy, чтобы преобразовать его в SWC и использовать его в моем приложении ... Кто-нибудь пробовал такого рода, или думаете, что это может работать?

Ответы [ 3 ]

8 голосов
/ 31 января 2009

Что нужно знать об Alchemy, так это то, что он компилирует C в тот же байт-код, что и actionScript, и работает в той же виртуальной машине (AVM2), что и приложения flash / flex as3.

Причина, по которой Alchemy может быть быстрее для некоторых операций, заключается в том, что скомпилированному C (скомпилированному в байт-код) предоставляется доступ к необработанной «памяти» (ApplicationDomain.domainMemory) через некоторые оптимизированные инструкции AVM2, которые были добавлены во флэш-версии 10.

Я пытаюсь понять, что, поскольку Alchemy просто работает поверх AVM2, он ограничен так же, как и любое другое приложение. Алхимия в приложении AIR может сделать больше, чем Алхимия в изолированной программной среде браузера, но она все еще ограничена этой изолированной программной средой.

Если вам действительно нужно выполнить внешнее приложение, вам нужно посмотреть что-то вроде Шу или Цинк .

Извините, я больше не могу помочь.

1 голос
/ 31 января 2009

Это не сработает - Алхимия на самом деле не подходит для программ, взаимодействующих с внешним миром. Я не думаю, что он поддержит выполнение системного вызова, и даже если Alchemy поддержит его, среда исполнения flash / air наверняка все равно заблокирует его.

Если вам не нужно кроссплатформенное поведение, вы можете заняться созданием старомодного «проектора». Можно запускать программы из exe-проектора с помощью fscommand - просто имейте в виду, что исполняемый файл, который вы хотите запустить, должен находиться в папке с именем fscommand рядом с двоичным файлом. Если этого недостаточно, вы можете попробовать сторонний коммерческий инструмент, такой как http://www.northcode.com/.

0 голосов
/ 01 февраля 2009

Нет, Ричард Сзали прав: Алхимия компилирует код C в байт-код ActionScript, поэтому полученный SWF-файл по-прежнему подчиняется тем же ограничениям в песочнице, что и любой другой; ограничения AIR могут быть более свободными, но использование Alchemy не дает в этом никакого преимущества.

Однако вы все равно можете «вызвать» песочницу, используя соединение через сокет, при условии, что у вас есть приложение, которое прослушивает соединение; посмотрите Merapi - это может помочь в качестве простого решения, если вы были открыты для использования Java, хотя вы, конечно, можете свернуть свое собственное с чем-то другим, например C #.

...