A Flash Developer Resource Site

Results 1 to 2 of 2

Thread: restacking thumbnails

  1. #1
    Member
    Join Date
    Dec 2005
    Posts
    99

    restacking thumbnails

    i am creating a small image gallery and am slowly hacking my way through learning AS3 at the same time. I want the thumbnails to overlap each other and when a new one is clicked, it pops to the front and the other thumbs restack and resize appropriately. I have some hideous code here to demonstrate. It works, but is clearly not that way to go code-wise. Can anyone point me in a direction here on how to clean this up?

    Code:
    currentElement.width = 74;
    currentElement.height = 96;
    
    if(currentElementNumber == 0){
    	setChildIndex(elementsArray[0], 1);
    	setChildIndex(elementsArray[1], 1);
    	setChildIndex(elementsArray[2], 1);
    	setChildIndex(elementsArray[3], 1);
    	trace("currentElementNumber: " + currentElementNumber);
    	elementsArray[1].width = 64;
    	( elementsArray[1].scaleX < elementsArray[1].scaleY ) ? elementsArray[1].scaleY = elementsArray[1].scaleX : elementsArray[1].scaleX = elementsArray[1].scaleY;
    	elementsArray[2].width = 54;
    	( elementsArray[2].scaleX < elementsArray[2].scaleY ) ? elementsArray[2].scaleY = elementsArray[2].scaleX : elementsArray[2].scaleX = elementsArray[2].scaleY;
    	elementsArray[3].width = 44;
    	( elementsArray[3].scaleX < elementsArray[3].scaleY ) ? elementsArray[3].scaleY = elementsArray[3].scaleX : elementsArray[3].scaleX = elementsArray[3].scaleY;
    } else if (currentElementNumber == 1){
    	setChildIndex(elementsArray[1], 1);
    	setChildIndex(elementsArray[0], 1);
    	setChildIndex(elementsArray[2], 1);
    	setChildIndex(elementsArray[3], 1);
    	trace("currentElementNumber: " + currentElementNumber);
    	elementsArray[2].width = 64;
    	( elementsArray[2].scaleX < elementsArray[2].scaleY ) ? elementsArray[2].scaleY = elementsArray[2].scaleX : elementsArray[2].scaleX = elementsArray[2].scaleY;
    	elementsArray[0].width = 64;
    	( elementsArray[0].scaleX < elementsArray[0].scaleY ) ? elementsArray[0].scaleY = elementsArray[0].scaleX : elementsArray[0].scaleX = elementsArray[0].scaleY;
    	elementsArray[3].width = 54;
    	( elementsArray[3].scaleX < elementsArray[3].scaleY ) ? elementsArray[3].scaleY = elementsArray[3].scaleX : elementsArray[3].scaleX = elementsArray[3].scaleY;
    }else if (currentElementNumber == 2){
    	setChildIndex(elementsArray[2], 1);
    	setChildIndex(elementsArray[1], 1);
    	setChildIndex(elementsArray[3], 1);
    	setChildIndex(elementsArray[0], 1);
    	trace("currentElementNumber: " + currentElementNumber);
    	elementsArray[0].width = 54;
    	( elementsArray[0].scaleX < elementsArray[0].scaleY ) ? elementsArray[0].scaleY = elementsArray[0].scaleX : elementsArray[0].scaleX = elementsArray[0].scaleY;
    	elementsArray[1].width = 64;
    	( elementsArray[1].scaleX < elementsArray[1].scaleY ) ? elementsArray[1].scaleY = elementsArray[1].scaleX : elementsArray[1].scaleX = elementsArray[1].scaleY;
    	elementsArray[3].width = 54;
    	( elementsArray[3].scaleX < elementsArray[3].scaleY ) ? elementsArray[3].scaleY = elementsArray[3].scaleX : elementsArray[3].scaleX = elementsArray[3].scaleY;
    }else if (currentElementNumber == 3){
    	setChildIndex(elementsArray[3], 1);
    	setChildIndex(elementsArray[2], 1);
    	setChildIndex(elementsArray[1], 1);
    	setChildIndex(elementsArray[0], 1);
    	trace("currentElementNumber: " + currentElementNumber);
    	elementsArray[0].width = 44;
    	( elementsArray[0].scaleX < elementsArray[0].scaleY ) ? elementsArray[0].scaleY = elementsArray[0].scaleX : elementsArray[0].scaleX = elementsArray[0].scaleY;
    	elementsArray[1].width = 54;
    	( elementsArray[1].scaleX < elementsArray[1].scaleY ) ? elementsArray[1].scaleY = elementsArray[1].scaleX : elementsArray[1].scaleX = elementsArray[1].scaleY;
    	elementsArray[2].width = 64;
    	( elementsArray[2].scaleX < elementsArray[2].scaleY ) ? elementsArray[2].scaleY = elementsArray[2].scaleX : elementsArray[2].scaleX = elementsArray[2].scaleY;
    }

  2. #2
    Will moderate for beer
    Join Date
    Apr 2007
    Location
    Austin, TX
    Posts
    6,801
    Each of your cases seems to be identical except for the indices. Figure out how to derive the proper indices from the currentElementNumber and collapse your cases down to one. I don't know what you mean by getting the other elements to restack appropriately, but setting them all to child index 1 is not the way to go. That basically sticks each one at the second lowest depth (pushing the previous ones out of the way in the process).

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