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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Action script 2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 12.06.2004, 18:56
Dindin вне форума Посмотреть профиль Отправить личное сообщение для Dindin Посетить домашнюю страницу Dindin Найти все сообщения от Dindin
  № 11  
Dindin
 
Аватар для Dindin

Регистрация: Feb 2004
Адрес: на колокольне Любит: плеваться
Сообщений: 1,769
Отправить сообщение для Dindin с помощью ICQ
Цитата:
Оригинал написал(а) Nucer
Ну да, криво сказал. Я имел ввиду, что в классе Array нумерация элементов возможна только цифрами. И что обращение к элементу в классе Array и обращение к любому объекту с переменной в качестве его имени - это разные вещи.
Цитата:
Dindin , не дури людей. Объекты отдельно, массивы отдельно
Код:
a= new Array (1,25,36);
a['elt1'] = 123;
a['elt2'] = 'new Element';
a[4] = 123;
a[5] = 273;
trace (a.toString());
trace (a.length);
trace('----------');
for (named in a) trace ('a['+named +']='+a[named]);
trace('----------');
for (i=0;i<a.length;i++) trace ('a['+i+']='+a[i]);
__________________
судью - на мыло, из игроков - вить веревки.


Последний раз редактировалось Dindin; 12.06.2004 в 18:58.
Старый 13.06.2004, 01:41
Nucer вне форума Посмотреть профиль Отправить личное сообщение для Nucer Посетить домашнюю страницу Nucer Найти все сообщения от Nucer
  № 12  
Nucer
[++]
 
Аватар для Nucer

Регистрация: Jan 2003
Адрес: Москва
Сообщений: 839
Отправить сообщение для Nucer с помощью ICQ
А вот так?
Код:
b = new Array ( 12 , 56 , 65 );
b['some'] = "999";
b['any'] = "111111";
trace( b.toString () );
trace( b.length );
Я ж говорю, b['some'] - просто создаёшь новый объект 'some' в объекте 'b'. К классу Array это не имеет никакого отношения, такое можно написать для экземпляра любого класса

Старый 13.06.2004, 01:45
Nucer вне форума Посмотреть профиль Отправить личное сообщение для Nucer Посетить домашнюю страницу Nucer Найти все сообщения от Nucer
  № 13  
Nucer
[++]
 
Аватар для Nucer

Регистрация: Jan 2003
Адрес: Москва
Сообщений: 839
Отправить сообщение для Nucer с помощью ICQ
И вот так?
Код:
c = new ContextMenu (); // или = new any_class ();
c[0] = 123;
c['some'] = "some value";
trace( c );
trace( c[0] + newline + c['some'] );


Последний раз редактировалось Nucer; 13.06.2004 в 01:46.
Старый 13.06.2004, 02:09
Dindin вне форума Посмотреть профиль Отправить личное сообщение для Dindin Посетить домашнюю страницу Dindin Найти все сообщения от Dindin
  № 14  
Dindin
 
Аватар для Dindin

Регистрация: Feb 2004
Адрес: на колокольне Любит: плеваться
Сообщений: 1,769
Отправить сообщение для Dindin с помощью ICQ
Определение:
"Ассоциированный массив - это массив элементов, к каждому элементу которого можно обратиться по имени. Под именем следует понимать строку-ключ, уникальную в пределах этого массива."
к примеру:
PHP код:
<?php
$style 
= array ( 'color' => 'Red''size' => '10px' );
echo 
$style['size'].'<BR>';
echo 
$style['color'].'<BR>';
?>
Видишь ли, Nucer, то, что не все методы объекта Array применимы к ассоциированному массиву, ещё совсем не значит, что его как такового нет. Если на то пошло, то в ActionScript есть специальная синтаксическая конструкция перебора элементов ассоциированного массива: for .. in. И принимает эта конструкция в качестве аргумента именно строку. И, обрати внимание, только строку. Поэтому, когда мы делаем так:
Код:
a= [];
for (i=0;i<30;i++) a[i] = random(98)+1;
for (element in a) 
{
	trace (a[element]);
	trace (typeof (element));
}
Мы получаем уже не массив? ведь ключами в нём являются строки, а не цифры. Если тот же код расширить таким образом:
Код:
a= [];
for (i=0;i<30;i++) a[i] = random(98)+1;
for (element in a) 
{
	trace (a[element]);
	trace (typeof (element));
}
for (i=0;i<30;i++) 
{
	trace (a[i]);
	trace (typeof (i));
}
Мы увидим, что наш массив внезапно опять стал массивом!

Да и многомерные массивы в таком случае тоже не являются массивами, ведь записав
Код:
a=[];
for (i=0;i<30;i++){
	a[i] = new Array();
	for (j=0;j<30;j++)
	a[i][j] = random(98)+1;
}
Мы создаём не двумерный массив, а массив, в котором каждый из элементов является неименованным массивом.
Стоит задуматься, как вы считаете, товарищ Нюкер?
__________________
судью - на мыло, из игроков - вить веревки.


Последний раз редактировалось Dindin; 13.06.2004 в 02:10.
Старый 13.06.2004, 02:18
Nucer вне форума Посмотреть профиль Отправить личное сообщение для Nucer Посетить домашнюю страницу Nucer Найти все сообщения от Nucer
  № 15  
Nucer
[++]
 
Аватар для Nucer

Регистрация: Jan 2003
Адрес: Москва
Сообщений: 839
Отправить сообщение для Nucer с помощью ICQ
Ну ладно, ладно, будем считать, что ты прав. Скажу так: "Массивы отдельно, класс Array отдельно"

Старый 13.06.2004, 02:26
Dindin вне форума Посмотреть профиль Отправить личное сообщение для Dindin Посетить домашнюю страницу Dindin Найти все сообщения от Dindin
  № 16  
Dindin
 
Аватар для Dindin

Регистрация: Feb 2004
Адрес: на колокольне Любит: плеваться
Сообщений: 1,769
Отправить сообщение для Dindin с помощью ICQ
Урра! Консенсус =)
__________________
судью - на мыло, из игроков - вить веревки.

Старый 13.06.2004, 15:17
olkina вне форума Посмотреть профиль Отправить личное сообщение для olkina Найти все сообщения от olkina
  № 17  
olkina
 
Аватар для olkina

Регистрация: Apr 2004
Адрес: Ramat Gan, Israel
Сообщений: 30
По умолчанию (Консенсус - это наше все)

Знатоки, скажите пожалуйста, а как я могу из ассоциированного (ассициативного?) массива убрать элемент?

Старый 13.06.2004, 15:50
Dindin вне форума Посмотреть профиль Отправить личное сообщение для Dindin Посетить домашнюю страницу Dindin Найти все сообщения от Dindin
  № 18  
Dindin
 
Аватар для Dindin

Регистрация: Feb 2004
Адрес: на колокольне Любит: плеваться
Сообщений: 1,769
Отправить сообщение для Dindin с помощью ICQ
Код:
a = [];
a['one']  = 'obj';
a['two']= 'clear';
a['three']= 'state';
for (elt in a) trace ('a["'+elt+'"]="'+a[elt]+'";');
trace ('---------');
delete a['two']; // Вот оно!!
for (elt in a) trace ('a["'+elt+'"]="'+a[elt]+'";');
__________________
судью - на мыло, из игроков - вить веревки.

Старый 13.06.2004, 18:28
olkina вне форума Посмотреть профиль Отправить личное сообщение для olkina Найти все сообщения от olkina
  № 19  
olkina
 
Аватар для olkina

Регистрация: Apr 2004
Адрес: Ramat Gan, Israel
Сообщений: 30
O!!!!!!

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

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

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


 


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


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