Hi
i am trying to create a photogallery where the thumbnails should slide in and position themselves randomly on screen. there are 2 buttons on stage " random and stack" which stack and randomize the thumbs. the gallery load up and the thumbs generate randomly but dont slide in (animate). also if i click on any other thumbnail the current image has to scale down to thumbnail size.
My problem is i am not able to do
1. slide in (animate) the thumbnails on load of gallery oo on press of shuffle / stack button
2. scale down the current image to thumbnail size on click of other thumb
i am attaching my code for your reference
thanks in advance for help
import mx.transitions.Tween;
import mx.transitions.easing.*;
var myArray:Array = new Array();
var allMcs:Array = new Array();
var myXml:XML = new XML();
myXml.ignoreWhite = true;
myXml.load("images.xml");
var mcLoader:MovieClipLoader = new MovieClipLoader();
var myListener:Object = new Object();
// reference for original position
var prevXPos:Number = 0;
var prevYPos:Number = 0;
var prevRPos:Number = 0;
this.createEmptyMovieClip("small",1);
// xml load function
myXml.onLoad = function(success) {
if (success) {
myArray = this.firstChild.childNodes[0].childNodes;
establishMcs();
}
};
function establishMcs() {
for (var i:Number = 0; i<myArray.length; i++) {
thumbset = this.small.attachMovie("thumb", "thumb"+i, this.small.getNextHighestDepth());
thumbset._x = -200;
mcLoader.loadClip(myArray*.attributes.big,thumbset.imgLoad);
allMcs.push(thumbset);
}
arrange(allMcs,false);
}
// movieclips position parameters
var gap:Number = 10;
var totalCols:Number;
var totalRows:Number;
var startXPos:Number;
var startYPos:Number;
var thumbset:MovieClip;
var nameOfMC:String;
function randomNo(max:Number, min:Number):Number {
var range:Number = max-min;
var resultRandom = Math.random()*range;
resultRandom += min;
return resultRandom;
}
// function for stacking of images
function alignVert(mcNames:Array):Void {
var ctr:Number = 0;
totalCols = 6;
totalRows = 1;
startXPos = 300;
startYPos = 100;
for (var i:Number = 0; i<mcNames.length; i++) {
this.thumbset = mcNames*;
this.thumbset._xscale = this.thumbset._yscale=10;
this.thumbset._rotation = 0;
this.thumbset._x = this.startXPos+(this.thumbset._width+gap)*ctr;
this.thumbset._y = this.startYPos+(this.thumbset._height+gap)*totalRows;
ctr++;
if (ctr == totalCols) {
ctr = 0;
totalRows++;
}
this.thumbset.onPress = clickX;
}
}
// function for random position of images
function alignRandom(mcNames:Array):Void {
for (var i:Number = 0; i<mcNames.length; i++) {
this.thumbset = mcNames*;
this.thumbset._xscale = this.thumbset._yscale=10;
this.thumbset._x = randomNo(800, 0);
this.thumbset._y = randomNo(400, 0);
this.thumbset._rotation = randomNo(360, 0);
this.thumbset.onPress = clickX;
}
}
// check point - to confirm that there are only movieclips in array
function arrange(movClps:Array, isHori:Boolean) {
for (var i:Number = 0; i<movClps.length; i++) {
if (typeof (movClps*)<>"movieclip") {
return "Invalid params";
}
}
if (isHori == true) {
alignVert(movClps);
} else {
alignRandom(movClps);
}
}
// enlarge image function
function clickX() {
if (!this.select) {
prevXPos = this._x;
prevYPos = this._y;
prevRPos = this._rotation;
//trace(prevXPos + "= prevXPos " + prevYPos+"=prevYPos");
var rotateTween:Tween = new Tween(this, "_rotation", Strong.easeOut, this._rotation, 0, 1, true);
var xPos:Tween = new Tween(this, "_x", Strong.easeOut, prevXPos, Stage.width/2, 1, true);
var yPos:Tween = new Tween(this, "_y", Strong.easeOut, prevYPos, Stage.height/2, 1, true);
var yScale:Tween = new Tween(this, "_yscale", Strong.easeOut, this._yscale, 100, 2, true);
var xScale:Tween = new Tween(this, "_xscale", Strong.easeOut, this._xscale, 100, 2, true);
var newDepth = this._parent.getNextHighestDepth();
this.swapDepths(newDepth);
this.select = true;
bigId = this._name.substr(5);
} else {
var yScale:Tween = new Tween(this, "_yscale", Strong.easeOut, 100, 10, 2, true);
var xScale:Tween = new Tween(this, "_xscale", Strong.easeOut, 100, 10, 2, true);
var xPos:Tween = new Tween(this, "_x", Strong.easeOut, Stage.width/2, prevXPos, 1, true);
var yPos:Tween = new Tween(this, "_y", Strong.easeOut, this._y, prevYPos, 1, true);
var rotateTween:Tween = new Tween(this, "_rotation", Strong.easeOut, this._rotation, prevRPos, 1, true);
this.select = false;
}
}
// randomize and stack button functions
_level0.stack.onPress = function() {
arrange(allMcs,true);
};
_level0.randomize.onPress = function() {
arrange(allMcs,false);
};
myListener.onLoadStart = function(target_mc:MovieClip) {
target_mc._parent.preloader._visible = true;
target_mc._parent.preloader.play();
};
myListener.onLoadComplete = function(target_mc:MovieClip) {
target_mc._parent.preloader._visible = false;
target_mc._parent.preloader.stop();
};
myListener.onLoadInit = function(target_mc:MovieClip) {
target_mc.forceSmoothing = true;
var myTween:Tween = new Tween(target_mc._parent, "_alpha", Strong.easeOut, 0, 100, 2, true);
};
mcLoader.addListener(myListener);
thanks
piyush