-
Day/Night Cycle Issues
Okay, so I'm making a flash site that's supposed to have a day/night cycle that works in real time
Right now, the plan is to have a ten frame animation play once and stop after it reached the end of the movieclip timeline when the clock hits a certain time and a movie is loaded
The problem is that whenever try testing the animation, it loops. I believe the problem is that a duplicate of the movieclip keeps attaching itself in the original's place
PHP Code:
stop();
var updateTime = setInterval(currenttime, 1000);
function currenttime() {
var today = new Date();
var minutes = today.getMinutes();
var hours = today.getHours();
trace(today);
trace(minutes);
trace(hours);
var DAWN = hours == 5 && minutes == 00;
var DAY = hours == 20 && minutes == 15;
if (DAWN<today) {
attachMovie("TownEarly", "TownEarly", 10);
unloadMovie(TownDay);
trace("It is dawn");
}
if (DAWN<DAY) {
attachMovie("TownDay", "TownDay", 10);
unloadMovie(TownEarly);
trace("It is day");
}
}
Is there a way to check if a movieclip is already attached and then prevent a duplicate from taking it's place
-
try this
PHP Code:
this.removeMovieClip('TownEarly');
or try
PHP Code:
TownEarly.removeMovieClip();
-
Doesn't seem to be working
-
I'd suggest instead of add/removing the movieclips, you just switch which one is visible. Maybe something like: TownEarly._visible = false;
-
Maybe use booleans to remember if dawn or day has been used before.
PHP Code:
//v1
stop();
var updateTime = setInterval(currenttime, 1000);
var attached_dawn=false
var attached_day=false
function currenttime() {
var today = new Date();
var minutes = today.getMinutes();
var hours = today.getHours();
trace(today);
trace(minutes);
trace(hours);
var DAWN = hours == 5 && minutes == 00;
var DAY = hours == 20 && minutes == 15;
if (DAWN<today) {
if(attached_dawn==false){
attachMovie("TownEarly", "TownEarly", 10);
attached_dawn=true;
}
unloadMovie(TownDay);
trace("It is dawn");
}
if (DAWN<DAY) {
if(attached_day==false){
attachMovie("TownDay", "TownDay", 10);
attached_day=true;
}
unloadMovie(TownEarly);
trace("It is day");
}
}
Here is an extra program just incase.
attach TownEarly, wait for it to reach its max frames, unload it, now attach TownDay, wait for it to reach its max frames, unload it, now start over? or attach a new thing.
TownEarly I put 10 frames with stop(); at last frame, TownDay I put 10 frames with stop(); at the last frame
PHP Code:
//v2
stop();
var updateTime = setInterval(currenttime, 1000);
var attached_dawn=false
function currenttime() {
var today = new Date();
var minutes = today.getMinutes();
var hours = today.getHours();
trace(today);
trace(minutes);
trace(hours);
var DAWN = hours == 5 && minutes == 00;
var DAY = hours == 20 && minutes == 15;
if(attached_dawn==false){//start attach TownEarly
attachMovie("TownEarly", "TownEarly", 10);
attached_dawn=true;
}
if(TownEarly._currentframe==TownEarly._totalframes&&TownEarly!=undefined){//TownEarly reached max frames, attach townDay
unloadMovie(TownEarly);
attachMovie("TownDay", "TownDay", 10);
}
if(TownDay._currentframe==TownDay._totalframes&&TownDay!=undefined){//TownDay reached max frames, attach TownEarly
unloadMovie(TownDay);
attachMovie("TownEarly", "TownEarly", 10);
}
}
This one is like the second version but with depth management if you have problems attaching multiple things.
PHP Code:
//v3
stop();
var updateTime = setInterval(currenttime, 1000);
var attached_dawn=false
var depth=10;
var last_obj=null
function currenttime() {
var today = new Date();
var minutes = today.getMinutes();
var hours = today.getHours();
trace(today);
trace(minutes);
trace(hours);
var DAWN = hours == 5 && minutes == 00;
var DAY = hours == 20 && minutes == 15;
if(attached_dawn==false){//start attach TownEarly
attachMovie("TownEarly", "TownEarly"+depth, depth);
last_obj=_root["TownEarly"+depth]
_root["TownEarly"+depth].name="TownEarly"
attached_dawn=true;
depth++
}
if(last_obj._currentframe==last_obj._totalframes&&last_obj!=undefined&&last_obj.name=="TownEarly"){//TownEarly reached max frames, attach townDay
unloadMovie(last_obj);
attachMovie("TownDay", "TownDay"+depth, depth);
last_obj=_root["TownDay"+depth]
_root["TownDay"+depth].name="TownDay"
depth++
}
if(last_obj._currentframe==last_obj._totalframes&&last_obj!=undefined&&last_obj.name=="TownDay"){//TownDay reached max frames, attach TownEarly
unloadMovie(last_obj);
attachMovie("TownEarly", "TownEarly"+depth, depth);
last_obj=_root["TownEarly"+depth]
_root["TownEarly"+depth].name="TownEarly"
depth++
}
}