![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jun 2006
Сообщений: 274
|
Приветствую!
Вопросик такой есть, помогите пожалуйста кто знает: утрировано, есть символ - домик многоэтажный, есть символ окошко в первом кадре "горит" во втором "не горит". Как сделать чтобы расставив символы окошек как нужно по верх домика, сделать так чтобы они рандомно то горели то нет проигрываясь то на первом кадре то на втором, имитируя "вечерний дом". Или как это лучше сделать, не могу понять... Заранее благодарен за любую помощь! |
|
|||||
|
Ладно, напишу пока я, а там, может, кто-то и по проще напишет.
берем одно окно - конверт в мувиклип, там два кадра: 1 - черный 2 - желтый с какими-то шторами. (если хочешь конвертни второй кадр в мувиклип и добавь желтый glow) в _root пиши Таким образом у тебя будут окна включаться и выключаться от силы раз в пару секунд. Меняя в setInterval время в милисекундах скорость переключания будет менятсья. Последний раз редактировалось iNils; 27.10.2006 в 21:01. |
|
|||||
|
Спасибо, я вообще чуток хтмл понимаю (сайт даже склеил :-)), а вот не додумался повесить тэг.
А вообще с оптимизацией в порядке? |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
2 ToXICus:
Ваш код работать не будет... Во-первых, тут синтаксическая ошибка: Во-вторых, если в качестве параметра Math.random вы хотели передать единицу, то хочу вас огорчить - Math.random не имеет параметров. Соответственно, проверка будет выполняться всегда с положительным результатом, поскольку Math.random возвращает значение n, причём 0 <= n < 1. Ну и, наконец, непонятно, зачем нужна строка Вы зачем-то описываете переменную 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;
}
Исходник прикрепляю...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого Последний раз редактировалось Хемуль; 28.10.2006 в 23:07. |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 274
|
Очередной респект г-ну Хемулю! Спасибо
![]() |
|
|||||
|
Да, но меня же движок форума в отличие от флеша не подправит, а переменная создана для наглядного примера. В конце концов, можно же без такой суровой критики ?-). Мы все учились понемногу.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 05:02. |
|
|
« Предыдущая тема | Следующая тема » |
|
|