Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ActionScript 3 > Передача параметров из ASP во Flash (swf)


Автор: AvnAvn 13.10.2010, 17:10
Требуется на Web-странице отображать план-схему населенного пункта, районы которого
раскрашиваются по значению некоторых параметров в нужный цвет.
Как передать параметр для задания цвета неких примитивов (полигонов) во Flash?

Автор: Maksys 14.10.2010, 09:19
Дык через XML такую элементарщину можно передать

Автор: AvnAvn 20.10.2010, 17:38
Данные будут изменяться в режиме реального времени. 
Можно как-то через параметры при вызове .swf из .NET или ASP. Посоветуйте как это сделать в Adobe Flash? (в момент вызова .swf тогда сам должен передачу параметров потребовать)

Автор: bars80080 20.10.2010, 19:10
Цитата(AvnAvn @  20.10.2010,  17:38 Найти цитируемый пост)
в момент вызова .swf тогда сам должен передачу параметров потребовать


Цитата(Maksys @  14.10.2010,  09:19 Найти цитируемый пост)
Дык через XML такую элементарщину можно передать 


php или asp по запросу из флэша производят необходимые вычисления, а затем генерируют XML с нужными параметрами и отдают.
флэшка уже парсит этот XML согласно стандартным инструментам

Автор: AvnAvn 21.10.2010, 05:57
XML должен будет генерироваться с довольно коротким периодом (пусть 3-5 мин).
Запрашивать Flash будет множество пользователей.
1. Момент чтения xml неизбежно будет попадать в промежуток времени удаления(модификации)/генерации нового XML. 
Поэтому, во время модификации файл будет недоступен для чтения.
2. В момент чтения (которое от множества пользователей будет вообще практически непрерывным) - xml будет недоступен для модификации/записи, т.к. открыт для чтения ПРАКТИЧЕСКИ ПОСТОЯННО.
Обмен данными через файлы (в данном случае XML) более всего применим при передаче данных (между системами, задачами) через
более длительные промежутки времени (или от случая к случаю).
Но в режиме реального времени файловый обмен не обеспечивает корректного разделения доступа.
Неужели во Flash никак нельзя передать пару чисел через параметры?

Автор: Maksys 21.10.2010, 06:36
Цитата(AvnAvn @  20.10.2010,  20:38 Найти цитируемый пост)
Данные будут изменяться в режиме реального времени. 

Дык тогда только JSON и т.п. сокет серверы. XML не вариант для реального времени.

Автор: bars80080 21.10.2010, 13:50
ну, а что мешает обычный текст получать?
какую-нибудь строку вида: param1=value1&param2=value2...



Цитата(AvnAvn @  21.10.2010,  05:57 Найти цитируемый пост)
1. Момент чтения xml неизбежно будет попадать в промежуток времени удаления(модификации)/генерации нового XML. 
Поэтому, во время модификации файл будет недоступен для чтения.
2. В момент чтения (которое от множества пользователей будет вообще практически непрерывным) - xml будет недоступен для модификации/записи, т.к. открыт для чтения ПРАКТИЧЕСКИ ПОСТОЯННО.

не знаю, как был сделан такой вывод.
если данные постоянно обновляются, то держать реальный физический файл на сервере - бессмысленно.
надо всего лишь заставить флэш обращаться по некоторому адресу: site.ru/our_xml/?изменяемые_параметры
скрипт, сидящий по этому адресу каждый раз будет генерировать свою xml (собственно, как все RSS-ленты и делают). а тут никакого открытия, закрытия, чтения, записи, модификации просто нет. есть только предельно допустимая нагрузка на сервер, напрямую зависящая как от количества посетителей, так и от самой структуры системы

Автор: AvnAvn 26.10.2010, 06:24
Цитата(bars80080 @ 21.10.2010,  13:50)
ну, а что мешает обычный текст получать?
какую-нибудь строку вида: param1=value1&param2=value2...

Все-таки xml это довольно длинный путь.
Про то как обычный текст получать во Flash, вы сказали "строку вида: param1=value1&param2=value2...".
Значит, все-таки во Flash можно передать обычный текст без xml? Пожалуйста поподробнее!

Автор: bars80080 26.10.2010, 14:30
Цитата(AvnAvn @  26.10.2010,  06:24 Найти цитируемый пост)
Пожалуйста поподробнее! 

http://forum.vingrad.ru/index.php?showtopic=133639&view=findpost&p=1010629

там осталось только на приёме распарсить данные

Код

var p = data.split('&');
var len = p.length;
var arr = new Array();
for(var i = 0; i < len; i++) {
    k = p[i].split('=');
    arr[p[0]] = p[1];
}


в итоге все переменные в массиве arr с ассоциативными ключами 

(мог, правда, с синтаксисом наврать - давно не писал на АС. но суть ясна)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)