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

Регистрация: 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 Кб, 38 просмотров)
Тип файла: rar globe.part3.rar (77.5 Кб, 46 просмотров)
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого