We help IT Professionals succeed at work.

AS3 Tween - problem fading two movieclips on top of each other

728 Views
Last Modified: 2013-11-12
Hi,

I am trying to achieve what at first seemed a quite simple task:

To get Flash AS3 to dynamically fade a movieclip in, then fade another one over the top, on a different layer. To give a 'slideshow' effect, images being fed by XML...

I have tried different approaches and the deadline is looming.  First I simply loaded the images as childs of a movieclip onto a stack, and faded them in - this worked OK, but kept 'hanging'/ not working properly when live.

so I'm exploring using two 'layers' - one on top of the other, that fade in/out - I set up a similar thing on the timeline with a movie in the old days!

Again, Flash seems to be tripping up with the 'Tween' - not rendering the scene when I have two tweens on stage at the same time.

Please help!

If there is a better 'Tween' component you can recommend that can definately handle two or more tweens at the same time?

Have a look at my code - can you see where there may be an issue - all the variables are being fed from local Arrays, that are built from XML data?

Please help!

Nick





public function sc_2_image_bg_in():void{
							var thisLoader:Loader = new Loader();
							thisLoader.load(new URLRequest(sc_2_bg_img_Arr[sc_2_bg_counter]));
							sc_2_image_bg.addChild(thisLoader);
							var sc_2_img_in = new Tween(thisLoader, "alpha", Strong.easeOut, 0, 1, pace_arr[sc_2_bg_counter], false);
								sc_2_img_in.addEventListener(TweenEvent.MOTION_STOP, sc_2_image_fg_in);
							sc_2_bg_counter++;
							}
							
						public function sc_2_image_bg_out(e:TweenEvent):void{
							var sc_2_bg_img_out = new Tween(sc_2_image_bg, "alpha", Strong.easeOut, 1, 0, pace_arr[sc_2_bg_counter], false);
								sc_2_bg_img_out.stop();
								sc_2_bg_img_out.addEventListener(TweenEvent.MOTION_START, sc_2_image_fg_in);
								sc_2_bg_img_out.start();
								
								
									//var sc_2_fg_img_in = new Tween(sc_2_image_fg, "alpha", Strong.easeOut, 0, 1, pace_arr[sc_2_bg_counter], false);
								//sc_2_bg_img_out.addEventListener(TweenEvent.MOTION_STOP, sc_2_image_remove);
								
							}
						public function sc_2_image_remove(e:TweenEvent):void{
							sc_2_image_bg.removeChildAt(0);//??
							trace(sc_2_image_bg.numChildren);
							}
							
						public function sc_2_image_fg_in(e:TweenEvent):void{
							var thisLoader:Loader = new Loader();
							thisLoader.load(new URLRequest(sc_2_fg_img_Arr[sc_2_fg_counter]));
							sc_2_image_fg.addChild(thisLoader);
							var sc_2_fg_img_in = new Tween(sc_2_image_fg, "alpha", Strong.easeIn, 0, 1, pace_arr[sc_2_fg_counter], false);	
							sc_2_fg_counter++;
							}

Open in new window

Comment
Watch Question

CERTIFIED EXPERT
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.