материалы :: календарь
 
-------------------------
>DHTML лаборатория
-------------------------
>Новости
Архив (8.5.2003)
Архив (18.4.2003)
Архив (4.4.2003)
Архив (24.3.2003)
Архив (7.3.2003)
Архив (18.2.2003)
Архив (4.2.2003)
Архив (21.1.2003)
Архив (6.1.2003)
Архив (23.12.2002)
-------------------------
>Лаборатория
Лабиринт
Scorch
Машинка
Пуповина
Соты
Мост
Кривые
С Новым Годом!
Снежок
Рыбки вернулись
Рыбки
Аркада
Микромашинка
-------------------------
>Материалы
Прелоадинг. Часть 1.
Физмат. Часть 1.
Календарь
Чат, чтоб не молчать
-------------------------
>Ссылки
VM Studio
Флэш Потрошитель
Flasher.ru
Ivan Dembicki
actionscript.org
junioronline
bit-101
flashcomponents
...
-------------------------

-------------------------
>Контакты
>Загрузить Flash
>Translate

>Поиск на сайте


-------------------------
Хостинг от UkrHosting
 
Верстал я как-то "В полный рост" (хоть верстать тут особо и нечего), и захотелось втулить простенький календарик. Не в смысле надобности - больше в смысле заполнения пространства. В итоге - он неплохо вписался и глаза не мозолит. Думаю именно таким боком он станет полезен и для Вас.
Опять же, наполняя содержанием этот самый "ВПР", подумал, что не лишним будет написать как я это делал, - не в смысле надобности - больше в смысле заполнения пространства... :))

Приступим. Создаем новый мувик. У меня он 120х110 и зеленый... На рисунке видно как нужно размещать TextFields, - белые прямоугольники. Все они динамические. Зачем все - объясню попозже.
Верхнее, самое большое текстовое поле, предназначено для вывода названия текущего месяца. Для него в Instance Name напишем : monthTxt.
Дальше - ряд текстовых полей для названий дней недели. Для каждого из них в Instance Name напишем d1, d2,..d7 соответственно начиная с понедельника.
Остальные 42 поля служат понятно для чего и в Instance Name для каждого слева-направо, сверху-вниз впишем c1, c2,..c42. Для красивости для каждой ячейки включите Align Center. Вот, компоновка закончена. Теперь приступим к написанию кода. Выделяем первый кадр и пишем код для него:

//объявляем несколько массивов.
//month - к-во дней в месяце

month = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

name_month = new Array("Январь", "Февраль", "Март",
"Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь",
"Октябрь", "Ноябрь", "Декабрь");

name_day = new Array("Пн","Вт","Ср","Чт","Пт","Сб","Вс");
//чистим текстовые поля(если они что-то
//содержали при компоновке)

for (i=1; i<43; i++) {
eval("c"+i).text = "";
}
//прописываем названия дней недели
for (i=0; i<7; i++) {
eval("d"+(i+1)).text = name_day[i];
}
//создаем объект типа "Дата", называем - тудеем
today = new Date();
//месяц в числовом виде - как индекс
//для массива с русскими названиями.
//Выводим в monthTxt

monthTxt.text = name_month[today.getMonth()];
temp = 7-(today.getDate()-today.getDay())%7;
if (temp == 7) {
temp = 0;
}
if (temp >7) {
temp = temp-7;
}
//в temp содержится номер ячейки, с которой
//будем начинать вывод чисел(0-7 или с1-с7).

year = today.getYear();
//выясняем текущий год и проверяем его на
//высокосность

if (((year%4 == 0) && (year%100 != 0)) || (year%400 == 0)) {
month[1] = 29;
}
//выводим дни месяца, не забывая
//расскрасить текущий день в белый цвет
for (i=1; i<month[today.getMonth()]+1; i++) {
eval("c"+(i+temp)).text = i;
if (i == today.getDate()) {
c = new Color("c"+(i+temp));
c.setRGB(parseInt("FFFFFF", 16));
}
}

Все текстовые поля динамические из-за того, что вписав дни недели как Static Text обнаружим их сглажеными в итоге. При таком размере шрифта это выглядит некрасиво.
Вот и все.

Скачать исходник: calendar.zip

Материал подготовил: syoPic