во втором случае не работает потому, что ты сделал присваивание значения переменной до того, как ее получил.
Вообще технология загрузки переменных выглядит следующим образом:
1) Для этих целей пользуется объект LoadVars или XML
2) Такой объект создается динамически перед отправкой данных:
my_sender = new LoadVars()
также перед отправкой в него втыкаются переменные, которые нужно отправить на сервак.
3) в этих объектах можно сделать прелодеры, поскольку имеются функции getBytesLoaded иgetBytesTotal
4) Можно точно отследить момент прихода данных с сервера поскольку имеестя событие onLoad, конструкция использования такова:

Код:
my_sender.onLoad = function (success){
if(!success){
// данные не пришли, вызываем обработчик ошибок:
this.errorHandler()
return
}
// данные пришли, вызываем обработчик данных
this.dataHandler()
}
И еще пару моментов:
не юзай разом пшп и флэш
если делаешь флэш, для простоты и уверенности в том, что всё впорядке получай данные их обычного текстовика, и только потом, когда добъешься нужного результата начинай делать пшп. В противном случае запаришься переделывать или пшп под флэш или флэш под пшп - заранее никогда неизвестно что понадобытся от сервака и наоборот.
Тести флэш на получение внешних данных эмулируя реальную сеть. Это легко сделать с помощью XatWebSpeedOptimiser
(
www.xat.com). В противном случае на реальном сайте может глючить, а у тебя локально проблем не будет - запаришься искать ошибку. Опять же - тестить придется на текстовике а не на пшп.