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:
Вообще я говорил о перезагрузке всей флешки. Но даже если говорить о мувиклипе карты, который движется под круглой маской, его тоже можно не перезагружать из библиотеки. Просто в библиотеке создаётся мувиклип из двух кадров. На кадрах дневная и ночная карты. В случае перехода на другую часть дня просто меняется кадр мувиклипа. Ну и что, я врал? Или это в вас опять говорит предвзятое отношение ко мне и моим примерам? ^_^