Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ассоциативный массив... (http://www.flasher.ru/forum/showthread.php?t=132527)

_SoWa 13.11.2009 14:05

Ассоциативный массив...
 
Всем привет!
Встала такая проблема, что мне надо получить массив, к кэлементам которого можно обращаться по имени.
Например text = myArray["Екатеринбург"]

Такое в PHP и JS я реализовывал с помощью ассоциативных массивов.
Там и push сильно помогал.

Но тут, вот незадача, такой код у меня не работает:
Код AS3:

public var myArray:Array = new Array();
...
myObject.id = tempXML.@text;
myArray[myObject.id] = tempXML.toString(); // складывание в массив
...
myTextField.htmlText = myArray[event.currentTarget.id]; // Так забираю в обработчике клика.

Но компилятор ругается, что не может обратиться к этим свойствам массива...

Помогите пожалуйста.

lighto 13.11.2009 14:55

хм... а в AS3 можно заполнять массивы без циклов? в РНР я его циклом например заполнял....(асоциативный массив)

derhab 13.11.2009 14:56

а обработчик на какой объект повешен?
возможно так:
Код AS3:

myTextField.htmlText = myArray[event.target.id];


lighto 13.11.2009 15:00

ой напутал не про то подумал извеняюсь:rolleyes::rolleyes:

_SoWa 13.11.2009 15:01

Циклы... не знаю, не знаю. Абодовские мануалы про это не говорят.
Если цикл делать- то из одной итерации..

Код AS3:

myTextField.htmlText = myArray[event.target.id];

Нет, обработчик на клик по МувиКлипу.
Но мне хотя бы сперва в массив сложить значение... :(
/*В принципе, думаю, можно изобрести велосипед и не использовать ассоциативный массив, а использовать индексный. Но как-то не хочется лишний код плодить*/

derhab 13.11.2009 15:06

Цитата:

Нет, обработчик на клик по МувиКлипу
myObject - это ваш мувиклип?

bicubic_bublic 13.11.2009 15:07

массивы используются для хранения элементов с порядковыми номерами.
в вашем случае надо использовать объекты
то бишь
Код AS3:

public var data:Object = {};

далее как вы и писали
Код AS3:

data["blahBlah"] = "valueBlah";
trace(data["blahBlah"]) // valueBlah


derhab 13.11.2009 15:18

а массив в этом случае ведет себя в точности как объект)
но правильней конечно с объектом в такой ситуации работать...

Добавлено через 3 минуты
http://help.adobe.com/ru_RU/ActionSc...0204-7eea.html

_SoWa 13.11.2009 15:23

Поправил объявление, теперь Object

1120: Access of undefined property myArray.
Вот такую ошибку выдает при попытке выполнить следующий код:
Код AS3:

myArray[myObject.id] = tempXML.toString();


derhab 13.11.2009 15:29

да ваша проблема не в том объект это или массив, выложите исходник или полный код


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

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