Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.08.2005, 02:08
-=Daemon=- вне форума Посмотреть профиль Отправить личное сообщение для -=Daemon=- Найти все сообщения от -=Daemon=-
  № 1  
Ответить с цитированием
-=Daemon=-

Регистрация: Aug 2005
Сообщений: 36
По умолчанию JS to Flash, как передать массив?

проблема при передаче массива из 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>

Старый 06.08.2005, 10:02
-=Daemon=- вне форума Посмотреть профиль Отправить личное сообщение для -=Daemon=- Найти все сообщения от -=Daemon=-
  № 2  
Ответить с цитированием
-=Daemon=-

Регистрация: Aug 2005
Сообщений: 36
По умолчанию горю с массивом! помогите!!!

знающие люди, ну скажите просто вот так вот можно передать один массив другому, без циклов или нет...

Старый 07.08.2005, 03:22
Iv вне форума Посмотреть профиль Отправить личное сообщение для Iv Посетить домашнюю страницу Iv Найти все сообщения от Iv
  № 3  
Ответить с цитированием
Iv
 
Аватар для Iv

Регистрация: 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

примерно так...

Старый 07.08.2005, 10:25
-=Daemon=- вне форума Посмотреть профиль Отправить личное сообщение для -=Daemon=- Найти все сообщения от -=Daemon=-
  № 4  
Ответить с цитированием
-=Daemon=-

Регистрация: Aug 2005
Сообщений: 36
По умолчанию массив

еслиб все так просто было, массив то, объектов...

Старый 07.08.2005, 14:53
Iv вне форума Посмотреть профиль Отправить личное сообщение для Iv Посетить домашнюю страницу Iv Найти все сообщения от Iv
  № 5  
Ответить с цитированием
Iv
 
Аватар для Iv

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
дык. передать объекты нельзя.

НО. тебе поможет жить ключевое слово Serialize в гугле.

Старый 07.08.2005, 19:13
-=Daemon=- вне форума Посмотреть профиль Отправить личное сообщение для -=Daemon=- Найти все сообщения от -=Daemon=-
  № 6  
Ответить с цитированием
-=Daemon=-

Регистрация: Aug 2005
Сообщений: 36
дык Функция serialize() и unserialize() ПХПшные функции...
можно конечно сделать аналог на JS, э-эх, бум колупаться....

Старый 07.08.2005, 22:34
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 7  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
вот ссылка может заинтересует: http://weblogs.macromedia.com/flashjavascript/, там и объекты передавать можно

Старый 08.08.2005, 12:31
-=Daemon=- вне форума Посмотреть профиль Отправить личное сообщение для -=Daemon=- Найти все сообщения от -=Daemon=-
  № 8  
Ответить с цитированием
-=Daemon=-

Регистрация: 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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:46.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.