![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
В последнее время часто задают эти вопросы, а после того, как сразу два пользователя написали мне личные сообщения по этому поводу, решил создать эту тему. Наверняка были уже подобные, но чего-то их никто не может найти. Пусть будет ещё такой пример, тем более, что в личные сообщения прикреплять файлы нельзя. Код я постарался прокомментировать. Если будут вопросы, пишите.
Нижеприведённый код в зависимости от времени суток прикрепляет на сцену из библиотеки изображение солнца или луны. // Час, когда начинается ночь. По сути первый час ночи.
var nightBeginHour:Number = 22;
// Час, когда заканчивается ночь. По сути первый час дня.
var nightEndHour:Number = 5
// Интервал в миллисекундах, который определяет периодичность проверки времени.
var timeCheckInterval:Number = 1000;
// Булево значение, в которой хранятся данные о том, какая сейчас часть суток.
// Данная переменная необходима для осуществления перехода день/ночь.
// Получаем текущую часть суток и сохраняем в переменную currentDayStatus.
var currentDayStatus:Boolean = isThereIsDayNow();
// Инициализируем начальное состояние обьектов для текущей части суток.
// Для данного примера вызываем функцию создания на сцене небесного светила,
// соответствующего дню/ночи.
attachCurrentPlanet();
// Устанавливаем таймер для проверки времени через
// каждые timeCheckInterval секунд.
var timer:Number = setInterval(this, "checkTime", timeCheckInterval);
// Функция, возвращающая true, если сейчас день и false, если сейчас ночь.
function isThereIsDayNow():Boolean
{
// Создаём обьект Date для того, чтобы получить текущее время.
var myDate:Date = new Date();
// Проверяем, лежит ли значение текущего часа в пределах дня или нет.
return ((myDate.getHours() >= nightEndHour) && (myDate.getHours() < nightBeginHour))
}
// Функция проверки времени
function checkTime()
{
// В булеву переменную newDayStatus заносим данные о том,
// какая сейчас часть суток.
var newDayStatus:Boolean = isThereIsDayNow();
// Проверяем, произошёл ли переход день/ночь, то есть, изменилась ли текущая
// часть суток.
if (newDayStatus != currentDayStatus)
{
// Если переход день/ночь произошёл, сохраняем данные о текущей
// части суток в currentDayStatus.
currentDayStatus = newDayStatus;
// И производим необходимые действия.
// Для данного примера удаляем старое небесное светило и вытаскиваем
// из библиотеки на его место новое светило, соответствующее текущей
// части суток.
this.planet.removeMovieClip();
attachCurrentPlanet();
}
}
// Функция для примера
function attachCurrentPlanet()
{
// Для этого примера в зависимости от текущей части суток на сцену
// из библиотеки выкладывается солнце или луна.
// Мувиклип светила увеличивается в 2 раза и центрируется относительно сцены.
var planetClip:MovieClip = this.attachMovie(currentDayStatus ? "sun" : "moon", "planet", this.getNextHighestDepth());
planetClip._xscale *= 2;
planetClip._yscale *= 2;
planetClip._x = (Stage.width - planetClip._width) / 2;
planetClip._y = (Stage.height - planetClip._height) / 2;
}
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 274
|
есть ведь добрые люди на земле, спасибо, пригодится
![]() |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 425
|
2 Хемуль:
И все же не про то я спрашивал.... как бы по точнее.... Как через определенный промежуток времени выполнять одно и то же действие? |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
2 repz:
// Интервал в миллисекундах.
var repeatInterval:Number = 1000;
// Создаём таймер.
var timer:Number = setInterval(functionToRepeat, repeatInterval);
// Описываем функцию, которая будет повторяться через repeatInterval.
function functionToRepeat()
{
// Действие, которое повторяется через repeatInterval
}
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого Последний раз редактировалось Хемуль; 25.10.2006 в 15:20. |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 425
|
2 Хемуль:
a_mc._visible=false;
b_mc._visible=false;
c_mc._visible=false;
var repeatInterval:Number = 1000;
var timer:Number = setInterval("functionToRepeat", repeatInterval);
function functionToRepeat()
{
var socket:XMLSocket = new XMLSocket();
if (!socket.connect("10.0.8.2",139)) {
c_mc._visible=true;
}
socket.onConnect = function(success:Boolean):Void {
if (!success) {
b_mc._visible=true;
} else {
a_mc._visible=true;
}
}
}
|
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
2 repz:
А что вы хотели получить?
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 425
|
Проверку своего условия через 1000 мл/сек
|
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
2 repz:
А так: либо так: Я извиняюсь - я там кавычки забыл убрать... Второй вариант - вызов функции как метода.
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого Последний раз редактировалось Хемуль; 25.10.2006 в 15:21. |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 425
|
2 Хемуль:
a_mc._visible=false;
b_mc._visible=false;
c_mc._visible=false;
var socket:XMLSocket = new XMLSocket();
var repeatInterval:Number = 500;
var timer:Number = setInterval(this, "functionToRepeat", repeatInterval);
function functionToRepeat()
{
if (!socket.connect("10.0.8.2",139)) {
c_mc._visible=true;
}
socket.onConnect = function(success:Boolean):Void {
if (!success) {
b_mc._visible=true;
} else {
a_mc._visible=true;
}
}
}
|
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
2 repz:
Ну, я вам показал, как делать проверку через определённое время... Разьирайтесь с кодом сокета... А вообще, как мне кажется, некорректно так делать, как вы делаете. Вы уверены, что onConnect выполняется раньше, чем пройдёт 500 миллисекунд?
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
![]() |
![]() |
Часовой пояс GMT +4, время: 04:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|