Просмотр полной версии : Обратиться ко всем элементам массива?
Например есть массив:
var massiv = new Array(a1, a2)
for (i=0; i<massiv.length; i++) {
massiv[i].........massiv[i] - обращается к определенному элементу i, а можно ли обратиться ко всем сразу?
chingachgoog
20.11.2007, 21:22
А что вы собираетесь делать дальше? Что значит "обратиться"?
Дальше мне надо к ним применить одно и то же действие одновременно.
chingachgoog
20.11.2007, 21:24
какое действие?
А этого действия случайно не предусмотрено изначально? :D
тут, например:
ActionScript 2.0 Language Reference(F1) -> ActionScript classes > Array
Например - enabled, можно конечно и так a1.enabled=a2.enabled=false;, а если их 300?
да простят меня все, но попробуй:
massiv.enabled = false;
То есть по Вашему я не пробывал, не работает!
Главное трейс показывает все элементы массива, а вот работать с ними не хочет.
интересно, действительно, есть же какой-то сопособ типа forEach, точно уверен, но в приницпе он всё равно будет равнозначен этому:
var massiv:Array = new Array(a1,a2);
function allArr(enable){
for (var i = 0; i<massiv.length; i++) {
massiv[i].enabled = enable;
}
}
allArr(0);
а вот этого быть не может, исходник в доказательство :)
а вообще проблема решена, просто нам надо внимательнее читать хелп :D
for (num in massiv) {massiv[num].enabled = false;}
удачи ;)
МММ, как бы енто повесить на релисе?
BUTTTTTTTON.onRelease = function(){
for (num in massiv) {massiv[num].enabled = false;}
}
но в конкретном случае лучше так, код для 1 кадра:
massiv = new Array(a1, a2);
for (num in massiv) {massiv[num].onRelease = function(){
for (num in massiv) {massiv[num].enabled = false;}
}}
Спасибо, работает, только мне кажется обсчитывает долго (подтормаживает).
проблема легко решается покупкой нового компьютера :)
))) улыбнуло)) sony vaio core 2 duo 2gb SDRAM
у меня хуже, но нет ни одного тормоза при проверке
Это у мя операционка перегружена скорее всего, еще раз спасибо)
chingachgoog
21.11.2007, 01:24
Например - enabled, можно конечно и так a1.enabled=a2.enabled=false;, а если их 300?
Какой еще enabled в массиве???
Массив будет либо содержать булевую величину (1 или 0), либо будет содержать ссылку на объект (мувик, кнопку), но массив не может содержать ссылку на свойство объекта.
а вообще проблема решена, просто нам надо внимательнее читать хелп
for (num in massiv) {massiv[num].enabled = false;}
Та же дыня только вид сбоку
for (i=0; i<massiv.length; i++) {massiv[i].........massiv[i]}
А вопрос был:
- обращается к определенному элементу i, а можно ли обратиться ко всем сразу?
Да нет, это как раз то, что мне было нужно, обратится к объекту (мувику), т.е. ко всем сразу.
chingachgoog
21.11.2007, 12:18
не понял, это тот же цикл for... идет перебирание массива по одному элементу, а не обращение ко всему массиву.
Т.е. ваш начальный код и код Ostgur - это по сути одно и тоже :)
обращение ко всему массиву — и есть перебирание всех элементов в любом случае, просто нужен был наиболее простой код :D
chingachgoog
28.11.2007, 13:38
Есть случаи когда не надо все перебирать
Например
myArray=[]
всем элементам массива присвоит значение undefined :)
a1, a2 должны быть мувиклипами!
Упс :) не заметил вторую страничку :D
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.