На странице руководства говорится, что нужно включать stdio.h
, а не stdlib.h
. Устраняет ли проблему включение stdio.h
?
, если вы хотите использовать AS2, вам понадобится промежуточный уровень:
flash.external :: ExternalInterface
вы можете вызвать код JavaScript. Вам необходимо определить обратный вызов, когда операция будет выполнена, а также функцию JavaScript, которую вы можете вызвать (есть и другие способы, но этого должно быть достаточно). Создайте строку запроса внутри флэш-памяти, передайте ее в JavaScript и позвольте JavaScript отправить ее на сервер в запросе POST и получить ответ во флэш-памяти через обратный вызов. Вы можете решить, какой из них больше работает ...
примечание: в AS3 следует использовать flash.net ::
Вы не можете использовать loadvars, как это, потому что data
может быть 1, 2 или 3, но не все одновременно.
Вы можете передать его как список, разделенный запятыми:
var req:LoadVars = new LoadVars();
req["data"] = "1,2,3";
, или как строку xml и проанализировать ее на сервере. Я не знаком с манипулированием xml в AS2, но вот как вы d сделать это в AS3:
var xml:XML = <root/>;
xml.appendChild(<data>1</data>);
xml.appendChild(<data>2</data>);
xml.appendChild(<data>3</data>);
//now pass it to loadvars
req["data"] = xml.toXMLString();
Отправляемая строка:
<root>
<data>1</data>
<data>2</data>
<data>3</data>
</root>
Стандартный HTTP-способ отправки данных массива -
http://example.com/?data[0]=1&data[1]=2
Но это тоже не так (добавлено из комментария):
http://example.com/?data[]=1&data[]=2
Отправка дополнительных параметров с тем же именем, как и вы, на практике означает, что все, кроме последнего элемента, следует игнорировать. Это связано с тем, что при чтении переменных сервер перезаписывает (в памяти) любой элемент, имеющий то же имя, что и этот, потому что переименование переменной не является хорошей практикой и никогда не было.
Я мало знаю AS (нет : p), но вы получите доступ к нему как к списку или массиву или любым другим структурам данных, которые он имеет.
Заявление об отказе от ответственности; Я никогда не использовал ActionScript и у меня нет возможности это проверить.
Включение одного и того же имени переменной с несколькими значениями в строку запроса - стандартный способ отправки многозначных переменных (например, флажков формы) на веб-серверы. Если LoadVars
может отправлять несколько значений, то кажется правдоподобным, что значения следует хранить в массиве:
req["someParam1"] = ["foo","bar","bas"];
Также, похоже, есть функция decode в LoadVars , что произойдет, если вы попытаетесь импортировать нужную строку запроса в объект?:
req.decode("someParam1=foo&someParam1=bar&someParam1=bas");