Показать сообщение отдельно
Старый 28.10.2006, 21:39
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 5  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 ToXICus:
Ваш код работать не будет...
Во-первых, тут синтаксическая ошибка:
Код:
a=Math.random()1;
Во-вторых, если в качестве параметра Math.random вы хотели передать единицу, то хочу вас огорчить - Math.random не имеет параметров.
Соответственно, проверка
Код:
if(a<1)
будет выполняться всегда с положительным результатом, поскольку Math.random возвращает значение n, причём 0 <= n < 1.
Ну и, наконец, непонятно, зачем нужна строка
Код:
var window:MovieClip;
Вы зачем-то описываете переменную window типа MovieClip...

Вот:
Код:
var windowsClipName:String = "windows";
var windowClipBaseName:String = "window";
var windowBackgroundClipName:String = "background";
var windowFrameClipName:String = "frame";
var windowDarkColor:Number = 0x000066;
var windowLightColor:Number = 0xFFFF00;
var windowsInterval: Number = 10;
var windowsTop:Number = 100;
var windowsLeft:Number = 100;
var xWindowsNumber:Number = 4;
var yWindowsNumber:Number = 4;
var windowsLightInterval:Number = 2000;

var windowsClip:MovieClip = this.createEmptyMovieClip(windowsClipName, this.getNextHighestDepth());
windowsClip._y = windowsTop;
windowsClip._x = windowsLeft;

for (var xIndex:Number = 0; xIndex < xWindowsNumber; xIndex++)
{
	for (var yIndex:Number = 0; yIndex < yWindowsNumber; yIndex++)
	{
		var newWindowName:String = windowClipBaseName + xIndex + yIndex;
		var newWindow:MovieClip = createWindow(newWindowName, windowsClip, windowsClip.getNextHighestDepth(), 0, 0);
		newWindow._x = xIndex * (newWindow._width + windowsInterval) - windowsInterval;
		newWindow._y = yIndex * (newWindow._height + windowsInterval) - windowsInterval;		
		setRandomWindowLight(newWindow);
	}
}

var timer:Number = setInterval(this, "updateWindows", windowsLightInterval);

function updateWindows()
{
	for (var xIndex:Number = 0; xIndex < xWindowsNumber; xIndex++)
	{
		for (var yIndex:Number = 0; yIndex < yWindowsNumber; yIndex++)
		{
			var windowName:String = windowClipBaseName + xIndex + yIndex;
			var windowClip:MovieClip = this[windowsClipName][windowName];
			setRandomWindowLight(windowClip);
		}
	}
}

function setRandomWindowLight(windowClip:MovieClip)
{
	setColor(windowClip[windowBackgroundClipName], randRange(1, 2) == 1 ? windowLightColor : windowDarkColor);
}

function createWindow(windowName:String, windowParentClip:MovieClip, windowDepth:Number, windowX:Number, windowY:Number):MovieClip
{
	var newWindow:MovieClip = windowParentClip.createEmptyMovieClip(windowName, windowDepth);
	newWindow._x = windowX;
	newWindow._y = windowY;
	var windowBackground:MovieClip = createRectangleMovieClip(windowBackgroundClipName, newWindow, newWindow.getNextHighestDepth(), 0, 0, 1, 1, 0x000000, 100);
	var windowFrame:MovieClip = newWindow.attachMovie(windowFrameClipName, windowFrameClipName, newWindow.getNextHighestDepth());
	windowBackground._width = windowFrame._width - 1;
	windowBackground._height = windowFrame._height - 1;
	return newWindow;
}

function setColor(movieClipToPaint:MovieClip, colorToPaint:Number)
{
	var newColor:Color = new Color(movieClipToPaint);
	newColor.setRGB(colorToPaint);
}

function randRange(min:Number, max:Number):Number
{
	var randomNum:Number = Math.round(Math.random() * (max - min)) + min;
	return randomNum;
}

function createRectangleMovieClip(newName:String, parentClip:MovieClip, parentClipDepth:Number, newX:Number, newY:Number, newWidth:Number, newHeight:Number, newColor:Number, newAlpha:Number):MovieClip
{
	var newClip:MovieClip = parentClip.createEmptyMovieClip(newName, parentClipDepth);
	newClip.beginFill(newColor);
	newClip.moveTo(0, 0);
	newClip.lineTo(newWidth, 0);
	newClip.lineTo(newWidth, newHeight);
	newClip.lineTo(0, newHeight);
	newClip.lineTo(0, 0);
	newClip.endFill();
	newClip._x = newX;
	newClip._y = newY;
	newClip._alpha = newAlpha;
	return newClip;
}
На сцене создаётся мувиклип-контейнер для иувиклипов окон. Можно задавать его координаты, расстояние между окнами, цвет светлого и тёмного окна, интервал времени между переключениями света в окнах, количество окон по горизонтали и по вертикали...
Исходник прикрепляю...
Вложения
Тип файла: zip windowsHouse.zip (6.6 Кб, 45 просмотров)
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого


Последний раз редактировалось Хемуль; 28.10.2006 в 23:07.