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

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

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

Регистрация: Nov 2007
Сообщений: 61
По умолчанию Вопрос по многомерному массиву

Всем привет!
Есть такой многомерный массив.

Код AS3:
var style0:Array = new Array;
style1[0] = "song0.mp3";
style1[1] = "song1.mp3";
 
var style1:Array = new Array;
style2[0] = "song0.mp3";
style2[1] = "song1.mp3";
 
var style_name:Array = new Array;
style_name[0] = style0;
style_name[1] = style1;

У меня никак не получается вывести трэйсом строчку "style0".
То есть, когда я пишу trace (style_name[0]), выводит song0.mp3, song1.mp3.
Как правильно вывести эту строчку?

Старый 16.02.2009, 01:29
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 2  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
правильно выводит. Вам как надо?

Старый 16.02.2009, 01:30
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 3  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
У style_name[0] неявно вызывается метод toString(). А так как значением style_name[0] является массив, то метод style_name[0].toString() возвращает список элементов, у каждого из которых также вызывается toString(). В итоге мы имеем то, что имеем =).

В Вашем коде я не нашел строки "style0". Поэтому сам вопрос не имеет смысла.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 16.02.2009, 01:42
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 4  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Трейс, как ему и предписано, выдает содержимое элемента массива style_name в виде строки. Так как содержимым элемента является другой массив (style0), то в строке выдается он (опять же, его содержимое, т.е. song0.mp3, song1.mp3)
Для того, чтобы получить имя элемента, нужно, по крайней мере, чтобы у элемента было имя =). У массива такого свойства не наблюдается.
Как вариант - можно либо расширить класс Array и добавить нужное свойство, либо вместо Array использовать Object, что позволит Вам задавать имена и добавлять элементы в виде свойств
__________________
...вселенская грусть

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

Регистрация: Nov 2007
Сообщений: 61
Я в терминах пока не силен, заранее извиняюсь, если непонятно выражаюсь =)
Да еще и код написал непонятный и с ошибками.
вот более понятный

Код AS3:
var house:Array = new Array;
house[0] = "song0.mp3";
house[1] = "song1.mp3";
 
var trance:Array = new Array;
trance[0] = "song0.mp3";
trance[1] = "song1.mp3";
 
var style:Array = new Array;
style[0] = house;
style[1] = trance;

Потом идет такой путь
Код AS3:
var snd:Sound = new Sound(new URLRequest(style[0] + "/" + style0[0]));
То есть в этом пути в первом случае style[0] выступает как String, а во втором как Array.

Мне нужно каким-то образом преобразовать имя массива house в строковое значение "house".

Добавлено через 2 минуты
Пока писал, gloomyBrain уже ответил =)
А можно поподробнее про Object?

Старый 16.02.2009, 02:34
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 6  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
у массива нет имени это имя переменной, которая нигде не хранится.

Старый 16.02.2009, 02:45
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 7  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
ИМХО многомерные массивы это зло
принимаю только одномерные. Если много данных, то хранить некую структуру, по хорошему даже не Object, нетипизировванность это плохо.


Последний раз редактировалось ramshteks; 16.02.2009 в 02:47.
Старый 16.02.2009, 02:55
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 8  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Код AS3:
var a:Array = ["1.mp3", "2.mp3", "3.mp3"]
var o:Object = new Object();
o.name = "house"
o.songs = a;
trace(o.name); // house 
trace(o.songs[2]); // 3.mp3
Цитата:
даже не Object, нетипизировванность это плохо
Object - это не тип объекта?
Или массивы во флеше - типизированные? =)

ЗЫ
но вообще-то, конечно, можно и по другому пути:
1) данные о песенках Вы же, вероятнее всего, из XML берете? Можно использовать сам XML
2) хранить имя массива в виде строки в 0-вом элементе массива
3) ... много как еще =)
__________________
...вселенская грусть


Последний раз редактировалось gloomyBrain; 16.02.2009 в 03:03.
Старый 16.02.2009, 03:51
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 9  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
ну Обжект тип. но вот данные в нем нетипизированны насколько я знаю. Поэтому я обычно создаю маленький класс только для данных реализуя структуру наподобие struct в си. Массив тоже не типизирован, но лучше в нетипизированном хранить структуры, вместо того чтобы в нетипизировванном нетипизированное. ну это я думаю не принципиально, но просто по мне это лучше и правильно, я это интуитивно что ли чувствую.

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

Старый 16.02.2009, 04:09
Jex вне форума Посмотреть профиль Отправить личное сообщение для Jex Найти все сообщения от Jex
  № 10  
Ответить с цитированием
Jex

Регистрация: Nov 2007
Сообщений: 61
gloomyBrain, Гут! Спасибо за тутор по обжектам)
Выбрал второй вариант, так как по одной переменной можно сразу нырнуть в нужную папку.
А до оставшихся двух вариантов пока еще далеко =)

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

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

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


 


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


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