PDA

Просмотр полной версии : Передача массива из HTML в SWF


CoolDV
31.10.2007, 22:05
Здравствуйте, возникла задача создания динамической карты во флэше

то, есть клиент хочет сам добавлять нужные города

Во флеше
массив выглядит так

All_array = Array(
Array("г. Москва","moscow","moscow",X,Y),
Array("г. XXX","moscow","xxx",X,Y),
)


То есть
All_array[0][1] - название города
All_array[0][2] - название района
All_array[0][3] - название города в латинице
All_array[0][4] - X на карте
All_array[0][5] - Y на карте


Помогите реализовать загрузку из HTML

udaaff
31.10.2007, 22:14
Читайте про ExternalInterface.

DarkLight
31.10.2007, 23:11
...но в идеале лучше попытаться сделать загрузку из xml, чтобы не зависеть от наличия включенного js и не бояться допотопных браузеров

Snut
31.10.2007, 23:34
да, хмл это выход в данном случае, хочешь - стучи в аську, напрямую сталкивался с данным вопросом.

CoolDV
09.11.2007, 10:53
Решил задачу наполовину, нашел пример где берут данные из файла типа

info=г. Тверь | tver | tver | 380 | 248.6
г. Вышний Волочок | volochek | volochek | 290.4 | 158
г. Торжок | torjok | torjok | 298.4 | 260


Но тут же столкнулся с новыми проблемами
во первых

load("params.txt");


откуда будет браться файл params.txt при размещении на сайте,
1. из той же папки где расположен мувик
2. из той же папки где расположена страница вывода

и вторая проблема

_root.All_array = arrayLoad.info.split("\r\n");


файл в кодировке UTF-8

почему то локально все нормально раздербанивает по строкам, однако на сайте выводится только первая строка.


приведу сам код разбиения на массив


var paramurl1:String = "http://mydomain/params.txt";
if (_level0.paramurl != undefined) {
// If image was specified, overwrite default value.
paramurl1 = _level0.paramurl;
}



arrayLoad = new LoadVars();
_root.All_array= new Array();
arrayLoad.load(paramurl1);
arrayLoad.onLoad = build_array;
function build_array() {

_root.All_array = arrayLoad.info.split("\r\n"); //сначало дербаним по строкам
for (i=0; i<_root.All_array.length; i++)
{
_root.All_array[i] = _root.All_array[i].split(" | "); //потом по палке:)
}

trace(_root.All_array.length)
start_draw()

}


в html соответственно прописываю


<param name="FlashVars" value="paramurl=http://mydomain/params.txt">
<embed src="map.swf" quality="high" FlashVars="paramurl=http://mydomain/params.txt">

olexandr
09.11.2007, 12:33
XML, только XML!!!