-
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;
}
-
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
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|