Форум Flasher.ru

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

Alex626 30.12.2012 23:15

Ассоциативные массивы AS2
 
Здравствуйте!

Расскажите мне пожалуйста о некоторых особенностях работы с массивами. Я знаю несколько способов создания массива, с объявлением как var myar:Array = []; и через new Array(); тоже. Хотелось бы уточнить, можно ли записывать элементы массива по имени, и точно так же к ним обращаться? Ну, я имею в виду что-то следующего вида:

Код AS1/AS2:

myar["var1"] = 15;
 
//
trace(myar["var1"]);



Также, хотелось бы узнать, есть ли принципиальная разница между хранением данных в массиве и хранением данных в объекте?

Большое спасибо за внимание!

mooncar 31.12.2012 01:02

1. Ассоциативные массивы в AS есть и повсеместно используются. Вы сами привели код (только не вижу объявление массива). Какие же у вас тогда вопросы?
2. По поводу второго. Полюбопытствуйте - недавняя тема в разделе AS3. Если начинаете изучать AS, то лучше начать сразу с актуального AS3, переходите на него. AS2 морально устарел, хотя он все же еще "в деле" и годится для не очень сложных проектов.

Замечания по оформлению темы:

1. В дальнейшем - вопросы лучше задавать по отдельности (при условии, что они все же не совсем об одной и той же вещи). На форуме действует правило "один вопрос - одна тема".
2. Заголовок темы должен соответствовать ее сути.

Alex626 01.01.2013 21:02

Полностью с вами согласен! Извините за неправильное оформление.

Почитал ту тему, а ещё нашёл вот это: http://stackoverflow.com/questions/1...actionscript-2. Получается, что лучше для этих целей в AS2 использовать объекты, а не массивы. Точнее, что объекты в AS2 - это и есть ассоциативные массивы :). Спасибо за помощь!

Добавлено через 3 часа 15 минут
Скажите пожалуйста, а в AS2 есть аналог javascript-оператора in для определения вхождения элемента в массив без цикла?

dark256 04.01.2013 15:01

В целом
Код AS1/AS2:

for ( var q in OBJ ) trace( q+"="+OBJ[q] )

В частном

Код AS1/AS2:

if ( array[q] != undefined && array[q] != null && array[q] !="" ) trace("Что-то там есть")

То есть - нету.

udaaff 04.01.2013 16:49

Цитата:

Скажите пожалуйста, а в AS2 есть аналог javascript-оператора in для определения вхождения элемента в массив без цикла?
В javascript он определяет наличие индекса в массиве, судя по справке, так же, как и в AS3.
http://javascript.ru/in

PRO100Light 09.01.2013 00:39

Мужики, не кидайте в меня сапогом... помогите упростить, не понимаю логику
Код AS1/AS2:

_root.b1._currentframe == _root.b2._currentframe == _root.b3._currentframe == _root.b4._currentframe == _root.b5._currentframe == _root.b6._currentframe == _root.b7._currentframe == _root.b8._currentframe == _root.b9._currentframe == _root.b10._currentframe == _root.b11._currentframe == _root.b12._currentframe == _root.b13._currentframe == _root.b14._currentframe == _root.b15._currentframe == _root.b16._currentframe == 1

Пробовал через for но он берет последнее значение, а не все сразу...

Tails 09.01.2013 00:58

Код AS1/AS2:

trace(eclipse());
 
function eclipse():Boolean{
        for(var i = 1; i<= 16; i++){
                if(_root["b"+i]._currentframe != 1) return false;
        }
        return true;
}


mooncar 09.01.2013 01:15

PRO100Light, каким боком относится ваш вопрос к массивам и к упомянутым ТС вопросам?
Не надо валить все в одну кучу, нужно было создать свою тему.


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

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