Вызовы функций ОС из ActionScript 3 ExternalInterface - PullRequest
2 голосов
/ 09 июля 2009

Используя ExternalInterface в AS3, можно ли вызывать функции OS (C #?) В XP?

Пример: установить фон рабочего стола на изображение, предоставляемое приложением flash?

Если это возможно, это будут разные вызовы применительно к разным ОС. А что насчет Mac?

Любая информация была бы отличной

Спасибо

Ответы [ 3 ]

2 голосов
/ 09 июля 2009

Если вы запускаете swf из приложения C #, внешний интерфейс будет работать нормально. Ничего не изменится со стороны флэш-памяти, но вам нужно пройти через пару обручей, чтобы заставить его работать в C #. Это не так просто, как AMF или внешний интерфейс к JS.

Все сообщения в C # преобразуются в XML с описанием данных, и вам нужно написать XML для отправки обратно на флэш-память. Кроме того, это относительно просто.

Вот некоторая информация о том, как это сделать. Часть AS - это Flash 8 / AS2, но часть C # должна сказать то же самое.

1 голос
/ 10 июля 2009

Вы можете использовать как уже упоминалось AIR. Другой идеей было бы использовать HippoHX (я не писал этого, сходство с моим именем пользователя - просто совпадение). Он работает поверх NekoVM и предоставляет вам неограниченный (поэтому нет ограничений, как в AIR) доступ к системе.

1 голос
/ 09 июля 2009

При работе с Flash с веб-страницы или в качестве настольного приложения вы ограничены небольшой изолированной программной средой безопасности и не сможете выполнять какие-либо соответствующие вызовы ОС. Я думал, что переход на AIR даст разработчику больше гибкости, но это тоже не кажется правильным. Из " Плюсы и минусы Adobe Air ":

приложения AIR имеют доступ к файлам, доступ к буферу обмена, поддержка несколько окон, поддержка перетаскивания и сбросить, и может вызвать уведомления (тост в винде). Если вам нужно приложение взаимодействовать с рабочим столом в другом Кстати, есть вероятность, что AIR не подходящее. Например, нет доступ к автоматизации COM, и никак выполнять внешние приложения. причина в том, чтобы поддерживать кроссплатформенность совместимость. Это достойная цель, но было бы хорошо иметь выход песочницы. В отличие от Java или .NET, вы не можете расширить AIR с помощью пользовательских библиотеки нативного кода. Ты не можешь вызовите API операционной системы.

Как прокомментировал Алекс Джиллард, если ваш swf вызывается в настольном приложении C #, вы должны иметь доступ к дополнительным функциям ОС, хотя я не уверен, как это сделать.

...