SCRIPT.com.ua
Логин: Пароль:
Регистрация Забыл пароль
МАТЕРИАЛЫ
Поиск
Новости
Материалы
Работа с WDDX в РНР [PHP]
Рецепт по установке web-сервера под Windows [PHP]
Инициализация для Flash Player 8 Beta [Flash]
Криптование [Action Script]
Настрока Homesite под Action Script [Action Script]
Учитесь писать код правильно [PHP]
Пасхальные яйца. [Action Script]
Flash-игры: проще, если знаешь как [Flash]
Установка Ming под win32 Apache+PHP [Action Script]
Wysiwyg HTML Редакторы [DHTML]
Исходники
"Объект" на JavaScript - аналог AsBroadcaster [DHTML]
Запрет кэширования [HTML]
Полупрозрачные картинки, которые 'востанавливаются' при наведении. [DHTML]
Новостная лента v1.2.1 [PHP]
Обход XML-дерева [Action Script]
CDATA и комментарии [XSL]
Кроссразмерный полноэкранный режим [Action Script]
KeyListener [Action Script]
Редирект [HTML]
Текстовый узел [XSL]
Лаборатория
Документация
Файлы
Ссылки
Пользователи
Контакты
Наш выбор
Need For Speed Carbon Rus
Наши партнеры
Среда, 3 Марта, 2004
Календарь [Action Script]
Верстал я как-то "В полный рост" (хоть верстать тут особо и нечего), и захотелось втулить простенький календарик. Не в смысле надобности - больше в смысле заполнения пространства. В итоге - он неплохо вписался и глаза не мозолит. Думаю именно таким боком он станет полезен и для Вас.
Опять же, наполняя содержанием этот самый "ВПР", подумал, что не лишним будет написать как я это делал, - не в смысле надобности - больше в смысле заполнения пространства... :))

Приступим. Создаем новый мувик. У меня он 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 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
Опубликовал: Администратор (17:15) | комментарии [1]
< назад
Вверх © Copyright 2004-2014 Script.com.ua



Версия для печати