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

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

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

Регистрация: Mar 2006
Сообщений: 425
Если возможно сделать так что бы даже без перезагрузки флеш менялся, то буду оч благодарен.
Код:
day_mc._visible=false;
ni_mc._visible=false;
time = new Date();
time_th = time.getHours();
if (time_th >= 4 && time_th <= 18)
{
		day_mc._visible = true;
} else {
		ni_mc._visible = true;
	day_mc._visible = false;
}

Старый 16.10.2006, 21:17
repz вне форума Посмотреть профиль Отправить личное сообщение для repz Найти все сообщения от repz
  № 2  
Ответить с цитированием
repz

Регистрация: Mar 2006
Сообщений: 425
2 D12:
Так выше постом все изложенно ж :-))) работает все нормально, но для изменения с 1 глобуса на другой, если время подошло нужно перезагружать страницу, Хемуль говорит, что можно без перезагрузки сделать, а так код выше работает...

Старый 16.10.2006, 22:10
repz вне форума Посмотреть профиль Отправить личное сообщение для repz Найти все сообщения от repz
  № 3  
Ответить с цитированием
repz

Регистрация: Mar 2006
Сообщений: 425
Это да, хотя раньше тоже вроде была, приветствия там от времени суток, кода еще на хтмл баловался, насчет Хемуля поморим может и можно, даже наверняка можно перегружать мувик со скриптом например соответственно он новые вводные получает через setinterval например, я так думаю.

P.S. ссори не заметил ссылок (там как раз про интервал)


Последний раз редактировалось repz; 16.10.2006 в 22:12.
Старый 17.10.2006, 03:03
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 4  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 repz:
Новый код:
Код:
var mainContainerClipName:String = "map";
var mapContainerClipName:String = "mapContainer";
var mapMaskClipName:String = "mask";
var mapClipBaseName:String = "map";
var dayMapId:String = "map1";
var nightMapId:String = "map2";
var mainContainerLeft:Number = 100;
var mainContainerTop:Number = 100;
var mainContainerWidth:Number = 94;
var mainContainerHeight:Number = 94;
var speed:Number = -1;
var nightBeginHour:Number = 22;
var nightEndHour:Number = 5
var mapCounter:Number = 0;
var currentMapId:String = getNewMapId();

var mainContainerClip:MovieClip = this.createEmptyMovieClip(mainContainerClipName, this.getNextHighestDepth());
var mapContainerClip:MovieClip = mainContainerClip.createEmptyMovieClip(mapContainerClipName, mainContainerClip.getNextHighestDepth());
var mapMaskClip:MovieClip = mainContainerClip.attachMovie("mapMask", mapMaskClipName, mainContainerClip.getNextHighestDepth());
mainContainerClip._x = mainContainerLeft;
mainContainerClip._y = mainContainerTop;
mainContainerClip._width = mainContainerWidth;
mainContainerClip._height = mainContainerHeight;
mapContainerClip.setMask(mapMaskClip);
addNewMap(0);
var timer:Number = setInterval(this, "checkTime", 1000);

function addNewMap(newMapX:Number)
{
	var mapClipName:String = mapClipBaseName + mapCounter;
	var mapClip:MovieClip = mapContainerClip.attachMovie(currentMapId, mapClipName, mapContainerClip.getNextHighestDepth(), {_x:newMapX});
	var mapScale:Number =  (mapMaskClip._height / mapClip._height) * 100;
	mapClip._xscale = mapScale;
	mapClip._yscale = mapScale;
	mapClip.id = mapCounter;
	mapClip.onEnterFrame = function()
	{
		this._x += speed;
		if (this._x + this._width < this._parent._parent[mapMaskClipName]._width && this._parent[mapClipBaseName + (this.id + 1)] == undefined)
		{
			addNewMap(this._x + this._width);
		}
		if (this._x + this._width < 0)
		{
			this.removeMovieClip();
		}
	};
	mapCounter++;
}

function getNewMapId():String
{
	var myDate:Date = new Date();
	if ((myDate.getHours() < nightEndHour) || (myDate.getHours() >= nightBeginHour))
	{
		return nightMapId;
	}
	else
	{
		return dayMapId;
	}
}

function checkTime()
{
	var newMapId:String = getNewMapId();
	if (currentMapId != newMapId)
	{
		var currentMapClipName:String = mapClipBaseName + (mapCounter - 1);
		var previousMapClipName:String = mapClipBaseName + (mapCounter - 2);		
		var currentMapClip:MovieClip = mapContainerClip[currentMapClipName];
		var previousMapClip:MovieClip = mapContainerClip[previousMapClipName];
		var currentMapClipX:Number = currentMapClip._x;
		var previousMapClipX:Number = previousMapClip._x;
		currentMapId = newMapId;
		if (previousMapClip != undefined)
		{
			previousMapClip.removeMovieClip();
			addNewMap(previousMapClipX);
		}
		currentMapClip.removeMovieClip();
		addNewMap(currentMapClipX);
	}
}
Задаётся начальный час ночи и час, который уже с утра ночью не является (конец ночи). При загрузке флешки ставится необходимая карта и каждую секунду производится проверка времени. Если меняется время суток (ночь/день), текущие полоски карт удаляются, а на их место ставятся "противоположные".
Обязательно посмотрите новую флешку, которую я прикрепляю. Я в библиотеке уменьшил картинку, чтобы она меньше занимала. Если будут вопросы, пишите.
И ещё удалите строку trace(newMapX); из кода флешки. Она там не нужна. Я просто забыл удалить,а перезакачивать архивы лень. ^_^

2 D12:
Вообще я говорил о перезагрузке всей флешки. Но даже если говорить о мувиклипе карты, который движется под круглой маской, его тоже можно не перезагружать из библиотеки. Просто в библиотеке создаётся мувиклип из двух кадров. На кадрах дневная и ночная карты. В случае перехода на другую часть дня просто меняется кадр мувиклипа. Ну и что, я врал? Или это в вас опять говорит предвзятое отношение ко мне и моим примерам? ^_^
Вложения
Тип файла: rar globe.part1.rar (89.8 Кб, 36 просмотров)
Тип файла: rar globe.part2.rar (89.8 Кб, 37 просмотров)
Тип файла: rar globe.part3.rar (77.5 Кб, 45 просмотров)
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 17.10.2006, 11:31
repz вне форума Посмотреть профиль Отправить личное сообщение для repz Найти все сообщения от repz
  № 5  
Ответить с цитированием
repz

Регистрация: Mar 2006
Сообщений: 425
2 Хемуль:
Разбираюсь......, что не пойму спрошу!
P.S. Спасиб

Старый 17.10.2006, 17:51
repz вне форума Посмотреть профиль Отправить личное сообщение для repz Найти все сообщения от repz
  № 6  
Ответить с цитированием
repz

Регистрация: Mar 2006
Сообщений: 425
2 Хемуль:
Что т не пойму где идет проверка через интервал? видимо здесь:
Код:
var timer:Number = setInterval(this, "checkTime", 1000);
, но как ее прикрутит вот сюда:
Код:
var nightBeginHour:Number = 22;
var nightEndHour:Number = 5;
day_mc._visible = false;
ni_mc._visible = false;
	var myDate:Date = new Date();
	if ((myDate.getHours() < nightEndHour) || (myDate.getHours() >= nightBeginHour))
	{
		ni_mc._visible = true;
		
	}
	else
	{
		day_mc._visible = true;
	}

Старый 17.10.2006, 18:02
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 7  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 repz:
А зачем её туда прикручивать? Тот скрипт, который я вам выше привёл, производит проверку на время и меняет карты. То есть, больше никаких проверок не надо. Я поставил такие настройки, что ночь начинается в 22 часа и заканчивается в 5. Вот запустите эту флешку и попробуйте системное время поменять в операционной системе. Поставьте сперва, например, 21 час, а потом 22. Увидите, как меняется глобус в реальном времени...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 17.10.2006, 18:19
repz вне форума Посмотреть профиль Отправить личное сообщение для repz Найти все сообщения от repz
  № 8  
Ответить с цитированием
repz

Регистрация: Mar 2006
Сообщений: 425
2 Хемуль
Да нет же, с той флешкой я разобрался, что да как просто хочу попрактиковаться немного и понять как что по отдельности использовать или по другому не так как я раньше делал. Вот и спрашиваю из Вашего же примера как туда прикрутить проверку через интервал?


Последний раз редактировалось repz; 17.10.2006 в 18:24.
Старый 17.10.2006, 18:29
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 9  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
Я на интервал повесил функцию checkTime. Вот её начало:
Код:
function checkTime()
{
    var newMapId:String = getNewMapId();
    if (currentMapId != newMapId)
То есть, мы в переменную newMapId заносим результат функции getNewMapId(), которая и производит проверку на часы. Потом в теле checkTime() идёт проверка, которая проверяет, изменилась ли требуемая карта. Таким образом отлавливается момент перехода через часовой барьер ночи.
Сама же функция проверки и выбора необходимого linkage Id'а библиотеки для мувиклипа карты выглядит так:
Код:
function getNewMapId():String
{
    var myDate:Date = new Date();
    if ((myDate.getHours() < nightEndHour) || (myDate.getHours() >= nightBeginHour))
    {
        return nightMapId;
    }
    else
    {
        return dayMapId;
    }
}
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 17.10.2006, 18:42
repz вне форума Посмотреть профиль Отправить личное сообщение для repz Найти все сообщения от repz
  № 10  
Ответить с цитированием
repz

Регистрация: Mar 2006
Сообщений: 425
2 Хемуль:
Спсб, буду пробовать.

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

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

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


 


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


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