Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Вопрос про массивы (http://www.flasher.ru/forum/showthread.php?t=57123)

artfla$her 17.04.2004 01:43

Вопрос про массивы
 
Народ, есть такой вопрос: если массив задан через <имя массива>[<имя элемента>], например a["name"], и так далее все элементы прописаны, то есть ли варианты, кроме как задания напрямую имени того или иного элемента, обратиться к его значению.
Проще - a["name"]="One";
trace(a["name"])
По-другому узнать значение элемента "name" можно? Через его индекс не получается..... Причем если массив задан таким образом, то при чтении свойства length возвращается 0, как это ни странно. Почему?

sergwizard 17.04.2004 11:01

Если a["name"] - это массив, то я бульдозер. Посмотри в хэлпе про массивы.

Nucer 17.04.2004 18:24

Во флэше нету ассоциативных массивов, а a["name"] соотвествует a.name

artfla$her 18.04.2004 00:26

Ага, понятно :) Просто у меня в голове клин был, что если какая строка с квадратными скобками, то сразу массив :D Где-то увидел подобные строки, вот и подумал, что это массив, и что можно ему элементы именовать прям строками :) Спасибо, не буду больше заблуждаться и искать невозможного :)

sergwizard 18.04.2004 02:59

Ну, почему же...? Вот это, например, - массив, его можно задавать так:
a = ["name","nick","age","gender","height","weight"];
Можно так:
a = new Array("name","nick","age","gender","height","weight");
Можно так:
a = new Array();
a[0]= "name";
a[1]= "nick";
a[2]= "age";
a[3]= "gender";
a[4]= "height";
a[5]= "weight";
А затем:
for(i=0;i<a.length;i++){
trace(a[i]);
}

BlooDHounD 18.04.2004 03:24

Да! Но его нельзя задать так:
Код:

a = new Array();
a["0"] = "name";
a["1"] = "nick";
a["2"] = "age";
a["3"] = "gender";
a["4"] = "height";
a["5"] = "weight";

Почувствуй разницу.

silin 18.04.2004 11:59

2BlooDHounD: неудачный пример:a["0"]="name" - так можно, нельзя наоборот a["name"] = "0";...

BlooDHounD 18.04.2004 20:12

2 silin
Цитата:

Во флэше нету ассоциативных массивов, а a["name"] соотвествует a.name
И я тоже так думаю! Уже намучался с этим. Я привёл пример не правельного массива, т.к. "0", "1", "2" ... "n" - в данном случае строки.

silin 18.04.2004 20:35

я и говорю, что привел неудачный пример, потому как строки "0", "1", "2" ... "n" флэш преобразует в нумберы
и такой код
a = new Array();
a["0"] = "name";
a["1"] = "nick";
trace(a);
работает (посмотри)

BlooDHounD 18.04.2004 21:33

Согласен.
 
Признаю.


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

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