Показать сообщение отдельно
Старый 02.01.2007, 21:33
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Пример класса. Белым выделенно то, о чем мы с __etc так долго твердили. Плюс я усложнил модель выбора нужного тайла. Выбираем 100% не прозрачен, его окружают с 75%, а следующие кольцо с 50%.
Код:
class MultiTile extends MovieClip {
	private var __tile:Array = null;
	
	function MultiTile () {
		__tile = new Array ();
	}
	
	function addTile (x:Number, y:Number):Void {
		if (!__tile[x]) {
			__tile[x] = new Array ();
		}
		__tile[x][y] = attachMovie ("tile", "", this.getNextHighestDepth (), {_x:x * 20, _y:y * 20});
	}
	
	function getTile (x:Number, y:Number):Void {
		for (var i:Number = x - 2; i < x + 3; i++) {
			for (var j:Number = y - 2; j < y + 3; j++) {
				var mc:MovieClip = __tile[i][j];
				if (mc) {
					if (i == x && j == y) {
						mc._alpha = 100;
					} else if (Math.abs (x - i) < 2 && Math.abs (y - j) < 2) {
						mc._alpha = 75;
					} else {
						mc._alpha = 50;
					}
				}
			}
		}
	}
	
}
Пример использования.
Код:
for (var i:Number = 0; i < 10; i++) {
	for (var j:Number = 0; j < 10; j++) {
		mt.addTile (i, j);
	}
}
mt.getTile (5,4)
__________________
(и)Нильс.ru | Плагины для FlashDevelop