Я бы использовал xml для чего-то подобного, но это можно сделать с помощью строк в кодировке URL.
Предполагая, что вы загрузили свои данные с помощью URLLoader и указали dataFormat как URLLoaderDataFormat.VARIABLES , вы близки.
Если у вас есть необработанная строка, вы должны сначала проанализировать ее, чтобы разбить ее на пары имя / значение. Это то, что URLVariables делает.
В любом случае, если у вас есть объект, содержащий имена / значения, вы можете сделать:
var i:int;
for (i = 0; i < 355; i++)
{
var tempString:String = "vote" + i;
voteResults[i] = event.target.data[tempString];
}
Если вы используете точечный доступ, буквально принимает «tempString». Если вы используете скобочный доступ, будет оценено значение переменной tempString.
PS: Кстати, я не думаю, что ваш php будет делать то, что вы хотите. Более чистым способом ИМО будет:
$pairs = array();
for ($i = 0; $i < 355; $i++)
{
$pairs[] = 'vote' . $i . '=' . $votesArray[$i];
// you might want to use rawurlencode($votesArray[$i]) to be safe if these are not numeric values.
}
echo implode('&',$pairs);
PS 2: Кроме того, это довольно хрупко, так как вы жестко программируете 355. Если вы когда-нибудь измените свой php, вам придется также изменить свой код AS. Вы можете попробовать что-то вроде этого:
var data:URLVariables = event.target.data as URLVariables;
for(var fieldName:String in data) {
var index:int = parseInt(fieldName.substr(4));
// or optionally, add an underscore to the name: vote_1
// so you can change the above to something like
// fieldName.split("_")[1]
voteResults[index] = data[fieldName];
}
Или, как я уже говорил, вы можете использовать xml, который достаточно прост и, я думаю, лучше для этого.