webForumDet fria alternativet

MovieClipLoader gör att det kommer ett konstigt blink...

Flash

2 svar · 334 visningar · startad av andyoumaydie

Medlem sedan dec. 2006608 inlägg
Frågan#1

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

Medlem sedan maj 2003750 inlägg
#2

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

Medlem sedan dec. 2006608 inlägg
#3

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

255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)