PDA

Просмотр полной версии : Вопросы по массивам в AS2


Alex626
30.12.2012, 23:15
Здравствуйте!

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

myar["var1"] = 15;

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



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

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

mooncar
31.12.2012, 01:02
1. Ассоциативные массивы в AS есть и повсеместно используются. Вы сами привели код (только не вижу объявление массива). Какие же у вас тогда вопросы?
2. По поводу второго. Полюбопытствуйте - недавняя тема в разделе AS3 (http://www.flasher.ru/forum/showthread.php?t=189917). Если начинаете изучать AS, то лучше начать сразу с актуального AS3, переходите на него. AS2 морально устарел, хотя он все же еще "в деле" и годится для не очень сложных проектов.

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

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

Alex626
01.01.2013, 21:02
Полностью с вами согласен! Извините за неправильное оформление.

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

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

dark256
04.01.2013, 15:01
В целом
for ( var q in OBJ ) trace( q+"="+OBJ[q] )

В частном

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
Мужики, не кидайте в меня сапогом... помогите упростить, не понимаю логику
_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
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, каким боком относится ваш вопрос к массивам и к упомянутым ТС вопросам?
Не надо валить все в одну кучу, нужно было создать свою тему.