Простой календарь на ActionScript 3.0

Этот пост посвящён небольшому классу Calendar, который, как очевидно даже из названия, генерирует такой широко распространённый флеш-виджет, как календарь. Календарик получается, правда, довольно простенький, но всё же выглядит он весьма стильно.

Не буду изматывать вас длительными рассуждениями, а сразу же покажу, как использовать класс Calendar в ваших флеш-проектах. Сам класс прилагается к исходнику, ссылка на который, как обычно, в конце поста. Итак, код...

Код ActionScript 3.0:

/* подключаем класс Calendar */ import Calendar; /* создаём экземпляр класса Calendar */ var calendar:Calendar = new Calendar(); /* добавление на сцену */ addChild(calendar); /* позиционируем календарь на сцене */ calendar.x = 200; calendar.y = 100; /* создаём объект Date, из которого будем узнавать текущий год и месяц */ var d:Date = new Date(); /* устанавливаем текущий месяц и год для нашего календаря */ calendar.month = d.getMonth(); calendar.year = d.getFullYear(); /* отрисовка календаря */ calendar.Render();

Результат применения данного кода будет следующим:

Загрузить Adobe Flash Player

Естественно, не стоит забывать, что время берётся флеш-роликом с компьютера пользователя, а, следовательно, корректность работы календаря напрямую зависит от корректности настроек времени и даты на компьютере пользователя.

Ещё один недостаток календаря - его формат. Для отечественных пользователей привычнее иметь дело с календарём, в котором неделя начинается с понедельника, а не с воскресенья. Что же до названия дней недели и месяцев, то никто не мешает их вам перевести на русский язык. Что я и сделал, сохранив переведённый класс, как CalendarRu (тоже прилагается к исходнику).

Код ActionScript 3.0:

import CalendarRu; var calendar:CalendarRu = new CalendarRu(); addChild(calendar); calendar.x = 200; calendar.y = 100; var d:Date = new Date(); calendar.month = d.getMonth(); calendar.year = d.getFullYear(); calendar.Render();

Теперь наш календарик стал гораздо приятнее для русского глаза:

Загрузить Adobe Flash Player

Исходник под Adobe Flash CS5.5 и сам класс Calendar можно скачать по данной ссылке.

Автор: admin

Дата добавления: 2011-11-10

Просмотров: 7701

Рейтинг поста: +15-

Правила перепечатки

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2014-12-02
Кстати, если вы хотите только увеличить или уменьшить размер всего календарика, то можно ограничиться скалированием при создании календарика:


calendar.scaleX = 2;
calendar.scaleY = 2;
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2014-12-02
> Добрый вечер.Пытаюсь изменить в классе размер. А не получается. Не подскажете в каких параметрах?

За размер текста отвечает второй параметр в TextFormat:

new TextFormat(шрифт, размер_текста, цвет_текста);

Кроме этого надо пропорционально изменить все свойства width, height, x и y внутри функций build и Render. И также надо пропорционально изменить ширину и высоту у функций drawRect (внутри функции build):

graphics.drawRect(0, 0, ширина, высота);
Комментатор
Комментарий добавил(а): Елена
Дата добавления: 2014-12-02
Добрый вечер.Пытаюсь изменить в классе размер..
А не получается..Не подскажете в каких параметрах?
Буду благодарна всю жизнь..
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2014-12-02
> Все хорошо! А как поменять цвет календарика ? Спасибо!

Для этого надо внести изменения в сам класс Calendar (файл Calendar.as). А именно надо изменить цвет у текстовых полей:


month_tf = new TextFormat("Arial",14,0x446699,true);

week_tf = new TextFormat("Arial",10,0x446699,true);

days_tf = new TextFormat("Arial",10,0x446699);

button_tf = new TextFormat("Arial",10,0x446699);
Комментатор
Комментарий добавил(а): Татьяна
Дата добавления: 2014-12-02
Все хорошо! А как поменять цвет календарика ? Спасибо!
Комментатор
Комментарий добавил(а): Александр
Дата добавления: 2014-05-21
Привести этот календарь к привычному виду проще простого. Для начала меняем местами дни недели:

private var _days:Array = ["Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"]

Затем приводим соответствующий участок кода к такому:

/** gets 1 day of the week in current selected month */
var temp:Date = new Date(_targetYear, _targetMonth);
var startDay:uint = temp.getDay()-1;
if(startDay==4294967295){
startDay=6;
}

Всё, теперь календарь начинается с понедельника и заканчивается воскресением.
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Страница 4 из 4: 1234
Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика