Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 29.03.2002, 11:21
Corpse вне форума Посмотреть профиль Отправить личное сообщение для Corpse Найти все сообщения от Corpse
  № 1  
Corpse

Регистрация: Oct 2001
Сообщений: 146
По умолчанию Проверка имени переменной из ActionScript.

У меня такая задача: игровое поле состоит из однотипных ячеек. При щелчке на одной из них необходимо проанализировать состояние окружающих ячеек (т. е. ячеек, координаты которых определенным образом зависят от ячейки, на которой был щелчок. Каким образом это можно сделать? В Delphi например есть ByName, а есть ли в ActionScript что-нибудь подобное?

Старый 29.03.2002, 11:36
[subway]design вне форума Посмотреть профиль Отправить личное сообщение для [subway]design Посетить домашнюю страницу [subway]design Найти все сообщения от [subway]design
  № 2  
[subway]design
 
Аватар для [subway]design

Регистрация: Oct 2001
Адрес: в Петербурге
Сообщений: 2,430
Если у тебя таблица кнопок (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 Только тебе уже известны эти х, у
}

// и т.д. и т.п.

}

Если используешь МХ, то можно и без клипов - там кнопки можно именовать.
__________________
subway.net.ru

Старый 29.03.2002, 12:18
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 3  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
2[subway]design

Ты всегда так страшно делаешь?

Создаем двумерный массив

Array2D = new Array();
for (var i = 0; i < _something; i++) Array2D[i] = new Array();

Потом заполняем его ссылками на клипы/кнопки.
Думаю, что адресация Array2D[X][Y] работает быстрее чем this["instancename_" + X + "_" + Y], а кроме того на вид она проще и понятнее.
__________________
...убивать людей не удовольствия ради, но для еды.

Старый 29.03.2002, 12:46
[subway]design вне форума Посмотреть профиль Отправить личное сообщение для [subway]design Посетить домашнюю страницу [subway]design Найти все сообщения от [subway]design
  № 4  
[subway]design
 
Аватар для [subway]design

Регистрация: Oct 2001
Адрес: в Петербурге
Сообщений: 2,430
Нет, не всегда :) Первое, что в голову пришло.
__________________
subway.net.ru

Создать новую тему   Часовой пояс GMT +4, время: 05:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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