Просмотр полной версии : Проверка имени переменной из ActionScript.
У меня такая задача: игровое поле состоит из однотипных ячеек. При щелчке на одной из них необходимо проанализировать состояние окружающих ячеек (т. е. ячеек, координаты которых определенным образом зависят от ячейки, на которой был щелчок. Каким образом это можно сделать? В Delphi например есть ByName, а есть ли в ActionScript что-нибудь подобное?
[subway]design
29.03.2002, 11:36
Если у тебя таблица кнопок (2D), то удобно иметь у каждой кнопки (в смысле мува) имя вида:
knopka_x_y
Примеры:
knopka_0_0 - кнопка из верхнего левого угла
knopka_10_10 - кнопка из нижнего правого угла (если таблица - 10*10)
knopka_5_5 - кнопка по центру (если таблица - 10*10)
Таким образом, при нажатии на хит-арею (кнопарь, лежащий внутри именованного мува-кнопки), хит ареа вызывает функцию кнопки-клипа, в котором сама лежит - clicked(this.x, this.y), передавая в качестве параметра переменные, переданные в цикле при attachMovie(...), и содержащие номера этого клипа - по Х и по У.
Вот функция:
function clicked(x, y){
//смотрим на соседку слева:
if(x>0){
cur_x=x-1;
cur_y=y;
left=_root.pole["knopka_"+cur_x+"_"+cur_y]; // _root.pole - клип, в который ты это дело аттачил.
//Теперь ты можешь обращаться к left как к _root.pole.knopka_x_y Только тебе уже известны эти х, у
}
//смотрим на соседку сверху:
if(x>0){
cur_x=x;
cur_y=y-1;
top=_root.pole["knopka_"+cur_x+"_"+cur_y]; // _root.pole - клип, в который ты это дело аттачил.
//Теперь ты можешь обращаться к top как к _root.pole.knopka_x_y Только тебе уже известны эти х, у
}
// и т.д. и т.п.
}
Если используешь МХ, то можно и без клипов - там кнопки можно именовать.
DeliMIter
29.03.2002, 12:18
2[subway]design
Ты всегда так страшно делаешь?
Создаем двумерный массив
Array2D = new Array();
for (var i = 0; i < _something; i++) Array2D[i] = new Array();
Потом заполняем его ссылками на клипы/кнопки.
Думаю, что адресация Array2D[X][Y] работает быстрее чем this["instancename_" + X + "_" + Y], а кроме того на вид она проще и понятнее.
[subway]design
29.03.2002, 12:46
Нет, не всегда :) Первое, что в голову пришло.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.