flash as3, fade in/out layering problem

Posted by Jackson Smith on Stack Overflow See other posts from Stack Overflow or by Jackson Smith
Published on 2010-05-31T22:18:19Z Indexed on 2010/05/31 22:23 UTC
Read the original article Hit count: 336

Filed under:
|
|
|
|

Ok, what im trying to do is make a day to night cycle behind my landscape. There is a sun and a moon, they rotate in a circle on opposite sides. (i.e. the sun is up when the moon is down and vice versa) when the sun is coming up it should fade from the night movieclip to the dawn movieclip, then when the sun is up a little bit more, fade into the day moviclip, this works quite well, but, for some reason, when it gets to the sunset, it just wont work :/ and the same goes for when it goes from the sunset to night :/ any and all healp is greatly appreciated, ive spent 5 hours trying to figure this out and cant! please help!

stage.addEventListener(Event.ENTER_FRAME, daynightcycle)

//setChildIndex(night, getChildIndex(day));

setChildIndex(sunset, 0);
setChildIndex(day, 1);
setChildIndex(dawn, 2);
setChildIndex(night, 3);

function daynightcycle(e:Event):void {

 if(sun.currentLabel == "dawn") {
  setChildIndex(sunset, 0);
  setChildIndex(day, 1);
  setChildIndex(dawn, 2);
  setChildIndex(night, 3);
  stage.addEventListener(Event.ENTER_FRAME, nightTdawn);

 }else if(sun.currentLabel == "sunset") {
  setChildIndex(dawn, 0);
  setChildIndex(night, 1);
  setChildIndex(sunset, 2);
  setChildIndex(day, 3);
  stage.addEventListener(Event.ENTER_FRAME, dayTsunset);

 }else if(sun.currentLabel == "night") {
  setChildIndex(day, 0);
  setChildIndex(dawn, 1);
  setChildIndex(night, 2);
  setChildIndex(sunset, 3);
  stage.addEventListener(Event.ENTER_FRAME, sunsetTnight);

 }else if(sun.currentLabel == "day") {
  setChildIndex(night, 0);
  setChildIndex(sunset, 1);
  setChildIndex(day, 2);
  setChildIndex(dawn, 3);
  stage.addEventListener(Event.ENTER_FRAME, dawnTday);

 }else if(sun.currentLabel == "switch") {
  stage.addEventListener(Event.ENTER_FRAME, switchLayers);
 }



}

function nightTdawn(e:Event):void {


 if(night.alpha != 0) {

  night.alpha -= 0.01;
 }else {
  stage.removeEventListener(Event.ENTER_FRAME, nightTdawn);
  night.alpha = 100;
  //setChildIndex(night, getChildIndex(sunset));
 }


}


function dayTsunset(e:Event):void {


 if(day.alpha != 0) {
  day.alpha -= 0.01;
 }else {
  stage.removeEventListener(Event.ENTER_FRAME, dayTsunset);
  day.alpha = 100;
  //setChildIndex(day, getChildIndex(dawn));
 } 

 //day.visible = false;
 //sunset.visible = true;

}
function sunsetTnight(e:Event):void {


 if(sunset.alpha != 0) {
  sunset.alpha -= 0.01;
 }else{
  stage.removeEventListener(Event.ENTER_FRAME, sunsetTnight);
  sunset.alpha = 100;
  //setChildIndex(sunset, (getChildIndex(day)));
 } 

 //sunset.visible = false;
 //night.visible = true;

}
function dawnTday(e:Event):void {

 sunset.visible = true;
 day.visible = true;

 if(dawn.alpha != 0) {
  dawn.alpha -= 0.01;
 }else{
  stage.removeEventListener(Event.ENTER_FRAME, dawnTday);
  dawn.alpha = 100;
  //setChildIndex(dawn, (getChildIndex(night)));
 } 
}

function switchLayers(e:Event):void {
 setChildIndex(dawn, 0);
 setChildIndex(night, 1);
 setChildIndex(sunset, 2);
 setChildIndex(day, 3);

 night.alpha = 100;
 sunset.alpha = 100;
 day.alpha = 100;
 dawn.alpha = 100;
 stage.removeEventListener(Event.ENTER_FRAME, switchLayers);

}

© Stack Overflow or respective owner

Related posts about flash

Related posts about game