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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.02.2006, 22:12
Valafar вне форума Посмотреть профиль Отправить личное сообщение для Valafar Найти все сообщения от Valafar
  № 1  
Ответить с цитированием
Valafar

Регистрация: Sep 2005
Сообщений: 7
Question Получение массива из JavaScript

Извиняюсь, если такая тема уже была, но облазив все поиском ничего такого не нашел.
Суть вопроса в следующем:
Есть скрипт на странице куда вставлен флеш:
Код:
function Flash_GetSmallPics(){
	var Spics = new Array();
	Spics[0] = "img/grab_001.jpg";   
	Spics[1] = "img/grab_002.jpg";
	Spics[2] = "img/grab_003.jpg";	
return Spics;
}
Во флеше это дело принимается SmallPics = new Array(ExternalInterface.call("Flash_GetSmallPics"));
Так вот вместо массива, я получаю строку "img/grab_001.jpg,img/grab_002.jpg,img/grab_003.jpg". Есть ли возможность получить именно массив, а не строку? Или только "ручками" парсить? =)

Старый 20.02.2006, 22:23
Homo Sapiens вне форума Посмотреть профиль Отправить личное сообщение для Homo Sapiens Посетить домашнюю страницу Homo Sapiens Найти все сообщения от Homo Sapiens
  № 2  
Ответить с цитированием
Homo Sapiens
 
Аватар для Homo Sapiens

Регистрация: Nov 2004
Адрес: Санкт-Петербург
Сообщений: 751
А ты читал про ExternalInterface? Например то что он передаёт данные в виде строки. Что возвращает метод toString() у класса Array? То ты и получил. Распарсь строку, ничего сложного. А ещё лучше - заранее переопредели метод в javascript, чтобы он тебе в более корректном (с точки зрения разделителя) выдавал данные.
__________________
Всё гениальное просто.

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

Регистрация: Nov 2004
Адрес: Санкт-Петербург
Сообщений: 751
Кстати, по-моему, парсер написать быстрее, чем лезть на форум, искать ответ, не найти, написать свой вопрос и ждать ответа?
__________________
Всё гениальное просто.


Последний раз редактировалось Homo Sapiens; 20.02.2006 в 22:26.
Старый 20.02.2006, 22:26
Homo Sapiens вне форума Посмотреть профиль Отправить личное сообщение для Homo Sapiens Посетить домашнюю страницу Homo Sapiens Найти все сообщения от Homo Sapiens
  № 4  
Ответить с цитированием
Homo Sapiens
 
Аватар для Homo Sapiens

Регистрация: Nov 2004
Адрес: Санкт-Петербург
Сообщений: 751
Благо даже у класса стринг есть метод - split, который принимает разделитель и возвращает строку в виде массива...
__________________
Всё гениальное просто.

Старый 21.02.2006, 02:21
Valafar вне форума Посмотреть профиль Отправить личное сообщение для Valafar Найти все сообщения от Valafar
  № 5  
Ответить с цитированием
Valafar

Регистрация: Sep 2005
Сообщений: 7
Во-первых, в хелпе я не видел чтобы он возвращал строку... наверное я совсем не знаю английский
Во-вторых, дело не в сложности "ручного парсинга", мне просто было принципиально интересно.
В-третьих, я чайник и совсем не подумал про split.
В-четвертых, большое спасибо

Старый 21.02.2006, 02:22
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 6  
Ответить с цитированием
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
В пятых, Macromedia JS Integration Kit дает возможность гонять данные с автосериализацией, а значит, отправив массив вы получите массив в AS.

Старый 21.02.2006, 12:57
Homo Sapiens вне форума Посмотреть профиль Отправить личное сообщение для Homo Sapiens Посетить домашнюю страницу Homo Sapiens Найти все сообщения от Homo Sapiens
  № 7  
Ответить с цитированием
Homo Sapiens
 
Аватар для Homo Sapiens

Регистрация: Nov 2004
Адрес: Санкт-Петербург
Сообщений: 751
Цитата:
Сообщение от Valafar
Во-первых, в хелпе я не видел чтобы он возвращал строку... наверное я совсем не знаю английский
Он возвращает не строку:
Код:
var s:String = "a,b,c";
var a:Array = s.split(",");
trace(a[0]); //a
trace(a[1]); //b
trace(a[2]); //c
__________________
Всё гениальное просто.

Старый 21.02.2006, 22:38
Valafar вне форума Посмотреть профиль Отправить личное сообщение для Valafar Найти все сообщения от Valafar
  № 8  
Ответить с цитированием
Valafar

Регистрация: Sep 2005
Сообщений: 7
Я имел ввиду не сплит, а ExternalInterface.call. Но не суть.
Теперь возникла другая проблема - если флеша "вставлена" в форму (<form id="form1" >...</form>), то скрипты начинают глючить, видимо "потеряв" id объекта (флеши). Никто не сталкивался с подобным?

Старый 21.02.2006, 22:44
Homo Sapiens вне форума Посмотреть профиль Отправить личное сообщение для Homo Sapiens Посетить домашнюю страницу Homo Sapiens Найти все сообщения от Homo Sapiens
  № 9  
Ответить с цитированием
Homo Sapiens
 
Аватар для Homo Sapiens

Регистрация: Nov 2004
Адрес: Санкт-Петербург
Сообщений: 751
Начни новую тему, эту закроет Antares
__________________
Всё гениальное просто.

Старый 21.02.2006, 22:49
Valafar вне форума Посмотреть профиль Отправить личное сообщение для Valafar Найти все сообщения от Valafar
  № 10  
Ответить с цитированием
Valafar

Регистрация: Sep 2005
Сообщений: 7
А смысл, разве уже пошел оффтоп?

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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