Det är fel instansnamn angivet när du sätter _visible.
Där du sätter "_visible" så refererar du till "theBox" men när du laddar in ett filmklipp så refererar du till "theBox_mc".
/Mirandir
2 svar · 334 visningar · startad av andyoumaydie
Hallå,
gör en liten test som jag av någon anledningen inte får att fungera som jag vill.
Tanken är att jag vill fada in ett mc (theBox_mc), när jag laddat in en annan swf i den. Men av någon anledning så blinkar den till innan faden börjar.
Det hela kan beskådas här.
Jag har provat med _visible=false på alla tänkbara ställen utan resultat.
Det som jag tycker är lite konstigt är att problemet dök upp när jag la in MovieClipLoadern.
Jag slänger in hela koden men det relevanta är väl det som ligger i slutet. (under //FADE)
_root.loadThis = "news.swf";
if (_level0.v_colors == undefined) {
_level0.v_colors = "0x000000,0xffffff";
}
var color_arr:Array = (_level0.v_colors.split(","));
_root.createEmptyMovieClip("theBox_mc", _root.getNextHighestDepth());
drawBox(theBox_mc, 300, 275, color_arr[0], 60);
theBox._visible = false;
//Skapar pageCont_mc som ska innehålla de inladdade sidorna
theBox_mc.createEmptyMovieClip("pageCont_mc", theBox_mc.getNextHighestDepth());
drawBox(theBox_mc.pageCont_mc, 300, 275, color_arr[0], 0);
//KNAPPEN
_root.createEmptyMovieClip("newsButton_mc", _root.getNextHighestDepth());
drawBox(newsButton_mc, 50, 40, 0xff0000, 50);
newsButton_mc._x = 260;
newsButton_mc._y = 361;
newsButton_mc.onRelease = function():Void {
fadeOut();
};
//Ritar ut sakerna
function drawBox(v_mc:MovieClip, v_width:Number, v_height:Number, v_color:Number, v_opacity:Number):Void {
if (v_width<40) {
v_width = 40;
}
if (v_height<40) {
v_height = 40;
}
v_mc.beginFill(v_color, v_opacity);
v_mc.moveTo(20, 0);
v_mc.lineTo((v_width-20), 0);
v_mc.curveTo(v_width, 0, v_width, 20);
v_mc.lineTo(v_width, (v_height-20));
v_mc.curveTo(v_width, v_height, (v_width-20), v_height);
v_mc.lineTo(20, v_height);
v_mc.curveTo(0, v_height, 0, (v_height-20));
v_mc.lineTo(0, 20);
v_mc.curveTo(0, 0, 20, 0);
v_mc.endFill();
}
//FADE
import mx.transitions.*;
import mx.transitions.easing.*;
var myTransitionManager:mx.transitions.TransitionManager = new mx.transitions.TransitionManager(_root.theBox_mc);
var myListenerIN:Object = new Object();
myTransitionManager.addEventListener("allTransitionsInDone", myListenerIN);
myListenerIN.allTransitionsInDone = function(eventObj:Object) {
trace("allTransitionsInDone event occurred.");
};
var myListenerOUT:Object = new Object();
myTransitionManager.addEventListener("allTransitionsOutDone", myListenerOUT);
myListenerOUT.allTransitionsOutDone = function(eventObj:Object) {
_root.theBox_mc._visible = false;
trace("allTransitionsOutDone event occurred.");
mcLoader.unloadClip("theBox_mc.pageCont_mc");
mcLoader.loadClip(_root.loadThis, "theBox_mc.pageCont_mc");
};
function fadeIn() {
myTransitionManager.startTransition({type:Fade, direction:Transition.IN, duration:2, easing:None.easeNone});
}
function fadeOut() {
myTransitionManager.startTransition({type:Fade, direction:Transition.OUT, duration:1, easing:None.easeNone});
}
//LOADER
var loadListener:Object = new Object();
loadListener.onLoadComplete = function(target_mc:MovieClip):Void {
_root.theBox._visible = false;
fadeIn();
};
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(loadListener);
mcLoader.loadClip("news.swf", "theBox_mc.pageCont_mc");
Tacksam för hjälp, för det här övergår mitt förstånd. :)
/Patrik
Det är fel instansnamn angivet när du sätter _visible.
Där du sätter "_visible" så refererar du till "theBox" men när du laddar in ett filmklipp så refererar du till "theBox_mc".
/Mirandir
Hur kan man missa en sån grej... :)
Jag har verkligen suttit o stirrat på kodsnutten i timmavis utan att upptäcka det.
Tackar tackar. :bire