Как отметили Алекс Джиллард и Марти, вы можете использовать flashvars
для передачи данных в приложение Flash. Однако этот подход жизнеспособен, только если данные, которые вы хотите передать, существуют во время загрузки приложения.
Если вы хотите передать данные в приложение Flash в любой момент в течение срока службы приложения, вы можете сделать это, создав для этого метод в приложении, добавив метод к ExternalInterface
приложения (о котором Алекс упомянул). ), а затем вызовите этот метод с помощью Javascript.
Предполагая, что приложение Flash представлено в HTML как элемент DOME с именем flashDOMElement
, а вышеупомянутый метод называется acceptData
, вы можете добавить метод во внешний интерфейс приложения следующим образом:
//ActionScript
ExternalInterface.addCallback("acceptData");
И вызвать метод, используя элемент DOME следующим образом:
//Javascript
flashDOMElement.acceptData(/*arg1, arg2, ... */);
Причина, по которой вы хотите сделать это (сделать данные доступными для изменения другим разработчиком), заставляет меня поверить, что вы, возможно, захотите сохранить такие данные, как только приложение Flash получит их. Вы можете сделать это с Локально общими объектами.
Если мои предположения верны, BakedGoods - это решение, к которому вы можете обратиться. Это библиотека Javascript, которая устанавливает единый интерфейс, который можно использовать для выполнения общих операций хранения во всех собственных и некоторых не собственных средствах хранения, включая Flash Local Local Shared Objects.
С его помощью можно создать LSO с помощью простого кода:
bakedGoods.set({
data: [{key: "key", value: "value"}],
storageTypes: ["flash"],
complete: function(byStorageTypeRemovedItemKeysObj, byStorageTypeErrorObj){/*code*/}
});
Ради полной прозрачности, BakedGoods поддерживается не кем иным, как этим парнем прямо здесь :).