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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

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

Регистрация: Jun 2006
Сообщений: 274
По умолчанию домик с окошками

Приветствую!

Вопросик такой есть, помогите пожалуйста кто знает:

утрировано, есть символ - домик многоэтажный, есть символ окошко в первом кадре "горит" во втором "не горит". Как сделать чтобы расставив символы окошек как нужно по верх домика, сделать так чтобы они рандомно то горели то нет проигрываясь то на первом кадре то на втором, имитируя "вечерний дом". Или как это лучше сделать, не могу понять...

Заранее благодарен за любую помощь!

Старый 27.10.2006, 20:42
ToXICus вне форума Посмотреть профиль Отправить личное сообщение для ToXICus Посетить домашнюю страницу ToXICus Найти все сообщения от ToXICus
  № 2  
Ответить с цитированием
ToXICus
 
Аватар для ToXICus

Регистрация: May 2006
Адрес: налево от Лондона
Сообщений: 447
Отправить сообщение для ToXICus с помощью ICQ
Ладно, напишу пока я, а там, может, кто-то и по проще напишет.
берем одно окно - конверт в мувиклип, там два кадра:
1 - черный
2 - желтый с какими-то шторами. (если хочешь конвертни второй кадр в мувиклип и добавь желтый glow)
в _root пиши
Код:
var window:MovieClip;
function lighting() {a=Math.random()1;
if(a<1) {
window.gotoAndStop(1);
} else {
window.gotoAndStop(2);
}
}
setInterval(lighting, 1000);
Таким образом у тебя будут окна включаться и выключаться от силы раз в пару секунд. Меняя в setInterval время в милисекундах скорость переключания будет менятсья.


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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
ToXICus, для оформления своего кода, надо использовать теги [code][/code].
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 28.10.2006, 21:21
ToXICus вне форума Посмотреть профиль Отправить личное сообщение для ToXICus Посетить домашнюю страницу ToXICus Найти все сообщения от ToXICus
  № 4  
Ответить с цитированием
ToXICus
 
Аватар для ToXICus

Регистрация: May 2006
Адрес: налево от Лондона
Сообщений: 447
Отправить сообщение для ToXICus с помощью ICQ
Спасибо, я вообще чуток хтмл понимаю (сайт даже склеил :-)), а вот не додумался повесить тэг.
А вообще с оптимизацией в порядке?

Старый 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 Кб, 43 просмотров)
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого


Последний раз редактировалось Хемуль; 28.10.2006 в 23:07.
Старый 31.10.2006, 03:25
Котяра2006 вне форума Посмотреть профиль Отправить личное сообщение для Котяра2006 Найти все сообщения от Котяра2006
  № 6  
Ответить с цитированием
Котяра2006

Регистрация: Jun 2006
Сообщений: 274
Очередной респект г-ну Хемулю! Спасибо

Старый 30.11.2006, 01:44
ToXICus вне форума Посмотреть профиль Отправить личное сообщение для ToXICus Посетить домашнюю страницу ToXICus Найти все сообщения от ToXICus
  № 7  
Ответить с цитированием
ToXICus
 
Аватар для ToXICus

Регистрация: May 2006
Адрес: налево от Лондона
Сообщений: 447
Отправить сообщение для ToXICus с помощью ICQ
Да, но меня же движок форума в отличие от флеша не подправит, а переменная создана для наглядного примера. В конце концов, можно же без такой суровой критики ?-). Мы все учились понемногу.

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

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

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


 


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


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