![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2005
Сообщений: 36
|
проблема при передаче массива из HTML странички посредством ява скрипта. Возможно ли это в принципе? подробнее:
HTML часть: <script language="JavaScript1.2"> all_object = new Array(); //создаю массив объектов function obj_on_map(x_coord, y_coord, obj_title){ //создаю конструктор объекта this.x_coord = x_coord; this.y_coord = y_coord; this.obj_title = obj_title; } function addObj(_xobj, _yobj, _descr){//добавляю объект all_object.push(new obj_on_map(_xobj, _yobj, _descr)); } function sanatoryOnMap(){//набиваю массив объектами addObj(0,0, 'title1'); addObj(30,30, 'title2'); addObj(60,60, 'title3'); addObj(60,60, 'title4'); window.document.map.SetVariable("_root.massiv",all_object);//а вот тут вероятно косяк - массив объектов во флеше пустой ![]() } Во флеше: trace(_root.massiv.length); // почему-то показывает 63 помогите разрулить!!! </script> |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 36
|
знающие люди, ну скажите просто вот так вот можно передать один массив другому, без циклов или нет...
|
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
_root.addProperty("_external_array", function () {
return this.external_array }, function (val) { this.external_array = val.split("|") }) из жабы задаешь setVariable строкой типа: 1|2|3|4 примерно так... |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 36
|
еслиб все так просто было, массив то, объектов...
|
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
дык. передать объекты нельзя.
НО. тебе поможет жить ключевое слово Serialize в гугле. |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 36
|
дык Функция serialize() и unserialize() ПХПшные функции...
можно конечно сделать аналог на JS, э-эх, бум колупаться.... |
|
|||||
|
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
вот ссылка может заинтересует: http://weblogs.macromedia.com/flashjavascript/, там и объекты передавать можно
|
|
|||||
|
Регистрация: Aug 2005
Сообщений: 36
|
А вот и решение:
---------------------- JS serialise---------------------------------------------- all_object = new Array();//инициализация send_to_flash=''; for (i=0; i < all_object.length; i++) { send_to_flash+=all_object[i].x_coord+"#"+all_object[i].y_coord+"#"+all_object[i].obj_title+"@"; } send_to_flash=send_to_flash.slice(0,-1);//убрал последний символ в получившейся строке (собаку тобишь) all_object=all_object.splice(0);//почистил массив window.document.map.SetVariable("_root._global.fromJS",send_to_flash);//отдал строку флешу --------------------------------------------------------------------------------- ---------------------- Flash unserialise ---------------------------------------- my_object=_root._global.fromJS.split("@");//разбиваем по строчкам objArray = new Array[""],[""]; for(j=0; j<my_object.length;j++){ objArray[j] = my_object[j].split("#");//разбиваем по столбцам } Вот и все, не сильно универсально зато просто и понятно ![]() А теперь внимание вопрос: ну и какого <scipped> я два дня назад этого не сделал? спасибо BitSky за идею. |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:46. |
|
|
« Предыдущая тема | Следующая тема » |
|
|