A Flash Developer Resource Site

Results 1 to 3 of 3

Thread: array gallery

  1. #1
    Junior Member
    Join Date
    Feb 2010
    Posts
    28

    array gallery

    Hi, I've been working on this gallery for some time, i started out by having a load of clips on stage, named box01 box02 etc:

    Code:
    import com.greensock.TweenMax;
    import com.greensock.easing.*
    
    
    var boxes:Array=new Array(box01,box02,box03,box04,box05,box06,box07,box08,box09,box10);
    
    for (var i in boxes) {
    	boxes[i].leftMC = boxes[i-1];
    	boxes[i].buttonMode=true;
    	boxes[i].addEventListener(MouseEvent.MOUSE_OVER, boxrollOver);
    	boxes[i].addEventListener(MouseEvent.MOUSE_OUT, boxrollOut);
    	boxes[i].addEventListener(Event.ENTER_FRAME, chkPosition)
    }
    
    
    function chkPosition(e:Event){
    	if (e.currentTarget.leftMC != undefined){
    		// adjust this as needed, assumes registration is in upper left corner
    		e.currentTarget.x = e.currentTarget.leftMC.x + e.currentTarget.leftMC.width + 10;
    	}
    }
    
    function boxrollOver(e:MouseEvent) {
    	TweenMax.to(e.currentTarget.img, .75, {scaleX:1.3, ease:Elastic.easeOut});
    	TweenMax.to(e.currentTarget.txt, .75, {x:284, ease:Elastic.easeOut, delay:.1});
    }
    
    function boxrollOut(e:MouseEvent) {
    	TweenMax.to(e.currentTarget.img, .5, {scaleX:1, ease:Elastic.easeOut});
    	TweenMax.to(e.currentTarget.txt, .5, {x:204, ease:Elastic.easeOut, delay:.1});
    }
    i then tried making it so i load in all the boxes dynamically (as later i'm going to make these XML driven):

    Code:
    import com.greensock.TweenMax;
    import com.greensock.easing.*;
    
    for (var j:Number=0; j<10; j++) {
    	var addboxinner:boxinner = new boxinner();
    	addChild(addboxinner);
    }
    
    
    
    var boxes:Array=new Array();
    boxes.push(j);
    
    for (var i in boxes) {
    	boxes[i].leftMC=boxes[i-1];
    	boxes[i].buttonMode=true;
    	boxes[i].addEventListener(MouseEvent.MOUSE_OVER, boxrollOver);
    	boxes[i].addEventListener(MouseEvent.MOUSE_OUT, boxrollOut);
    	boxes[i].addEventListener(Event.ENTER_FRAME, chkPosition);
    }
    
    
    function chkPosition(e:Event) {
    	if (e.currentTarget.leftMC!=undefined) {
    		// adjust this as needed, assumes registration is in upper left corner
    		e.currentTarget.x=e.currentTarget.leftMC.x+e.currentTarget.leftMC.width+10;
    	}
    }
    
    function boxrollOver(e:MouseEvent) {
    	TweenMax.to(e.currentTarget.img, .75, {scaleX:1.3, ease:Elastic.easeOut});
    	TweenMax.to(e.currentTarget.txt, .75, {x:284, ease:Elastic.easeOut, delay:.1});
    }
    
    function boxrollOut(e:MouseEvent) {
    	TweenMax.to(e.currentTarget.img, .5, {scaleX:1, ease:Elastic.easeOut});
    	TweenMax.to(e.currentTarget.txt, .5, {x:204, ease:Elastic.easeOut, delay:.1});
    }
    but i get the error:
    ReferenceError: Error #1056: Cannot create property leftMC on Number.
    at boxshifter15_fla::content_1/frame1()
    can anyone help please?

  2. #2
    :
    Join Date
    Dec 2002
    Posts
    3,518
    Code:
    import com.greensock.TweenMax;
    import com.greensock.easing.*;
    
    var boxes:Array=new Array();
    for (var j:Number=0; j<10; j++) {
    	var addboxinner:boxinner = new boxinner();
    	addChild(addboxinner);
    	boxes.push(addboxinner);
    }
    
    for (var i in boxes) {
    	boxes[i].leftMC=boxes[i-1];
    	boxes[i].buttonMode=true;
    	boxes[i].addEventListener(MouseEvent.MOUSE_OVER, boxrollOver);
    	boxes[i].addEventListener(MouseEvent.MOUSE_OUT, boxrollOut);
    	boxes[i].addEventListener(Event.ENTER_FRAME, chkPosition);
    }
    
    
    function chkPosition(e:Event) {
    	if (e.currentTarget.leftMC!=undefined) {
    		// adjust this as needed, assumes registration is in upper left corner
    		e.currentTarget.x=e.currentTarget.leftMC.x+e.currentTarget.leftMC.width+10;
    	}
    }
    
    function boxrollOver(e:MouseEvent) {
    	TweenMax.to(e.currentTarget.img, .75, {scaleX:1.3, ease:Elastic.easeOut});
    	TweenMax.to(e.currentTarget.txt, .75, {x:284, ease:Elastic.easeOut, delay:.1});
    }
    
    function boxrollOut(e:MouseEvent) {
    	TweenMax.to(e.currentTarget.img, .5, {scaleX:1, ease:Elastic.easeOut});
    	TweenMax.to(e.currentTarget.txt, .5, {x:204, ease:Elastic.easeOut, delay:.1});
    }

  3. #3
    Junior Member
    Join Date
    Feb 2010
    Posts
    28
    wow that was quick :|
    thats AWESOME, thanks alot

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  




Click Here to Expand Forum to Full Width

HTML5 Development Center