Hi,
I just downloaded Blue Chi’s advanced image gallery few days back and converted into grid gallery in AS2.
However I am stuck with 2 things:
-
How to make the gallery endlessly scrollable in a efficient way. I used duplication method but the trick used is noticeable when it axis matches with stage mask
-
Also, I am not able to control mouseOver and mouseOut scrolling.
Any help at coding level will be greatly appreciated.
import mx.transitions.Tween;
import mx.transitions.easing.*;
var myGalleryXML = new XML();
myGalleryXML.ignoreWhite = true;
myGalleryXML.load("gallery2.xml");
var y_counter =0;
var x_counter =0;
var y_counter1 =0;
var x_counter1 =0;
var rows;
myGalleryXML.onLoad = function() {
_root.gallery_x = myGalleryXML.firstChild.attributes.gallery_x;
_root.gallery_y = myGalleryXML.firstChild.attributes.gallery_y;
_root.gallery_width = myGalleryXML.firstChild.attributes.gallery_width;
_root.gallery_height = myGalleryXML.firstChild.attributes.gallery_height;
_root.myImages = myGalleryXML.firstChild.childNodes;
_root.myImagesTotal = myImages.length;
_root.thumb_height = myGalleryXML.firstChild.attributes.thumb_height;
_root.thumb_width = myGalleryXML.firstChild.attributes.thumb_width;
_root.full_x = myGalleryXML.firstChild.attributes.full_x;
_root.full_y = myGalleryXML.firstChild.attributes.full_y;
_root.rows = myGalleryXML.firstChild.attributes.rows;
callThumbs();
createMask();
scrolling();
};
// CALLS THUMBNAILS INTO CONTAINER
function callThumbs(){
_root.createEmptyMovieClip("container_mc",_root.getNextHighestDepth());
_root.createEmptyMovieClip("container_mc1",_root.getNextHighestDepth());
container_mc._x = _root.gallery_x;
container_mc._y = _root.gallery_y;
container_mc1._x = container_mc._width;
container_mc1._y = container_mc._height;
// INITIALLY DARKENS CONTAINER
container_mc._alpha = 80;
container_mc1._alpha = 80;
var clipLoader = new MovieClipLoader();
var preloader = new Object();
clipLoader.addListener(preloader);
for (i=0; i<_root.myImagesTotal; i++) {
thumbURL = myImages*.attributes.thumb_url;
myThumb_mc = container_mc.createEmptyMovieClip(i, container_mc.getNextHighestDepth() );
myThumb_mc._x = (_root.thumb_width-10)*x_counter;
myThumb_mc._y = (_root.thumb_height-10)*y_counter;
if (y_counter+1 < rows) {
y_counter++;
} else {
y_counter = 0;
x_counter++;
}
myThumb_mc1 = container_mc1.createEmptyMovieClip(i, container_mc1.getNextHighestDepth() );
myThumb_mc1._x = (_root.thumb_width-10)*x_counter1;
myThumb_mc1._y = (_root.thumb_height-10)*y_counter1;
if (y_counter1+1 < rows) {
y_counter1++;
} else {
y_counter1 = 0;
x_counter1++;
}
clipLoader.loadClip("thumbs/"+thumbURL,myThumb_mc);
clipLoader.loadClip("thumbs/"+thumbURL,myThumb_mc1);
// THUMBNAIL PRELOADER
preloader.onLoadStart = function(target) {
target.createTextField("my_txt",target.getNextHighestDepth,0,0,100,20);
target.my_txt.selectable = false;
};
preloader.onLoadProgress = function(target, loadedBytes, totalBytes) {
target.my_txt.text = Math.floor((loadedBytes/totalBytes)*100);
};
preloader.onLoadComplete=function(target){
new Tween(target, "_alpha", Strong.easeOut, 0, 100, .5, true);
target.my_txt.removeTextField();
target.onRelease=function(){
//clipLoader.removeEventListener(Event.CLICK,callFullImage(this._name));
callFullImage(this._name);
}
// ROLLOVER - THUMB ALPHA and ACTIVE FUNCTION
target.onRollOver = function() {
this._alpha = 200;
_root.scroll_active=true;
};
target.onRollOut = function() {
this._alpha = 100;
_root.scroll_active=false;
};
}
}
}
// CALLS FULL IMAGE ON THUMBNAIL CLICK
function callFullImage(myNumber) {
myURL = myImages[myNumber].attributes.full_url;
myTitle = myImages[myNumber].attributes.title;
_root.createEmptyMovieClip("fullImage_mc",_root.getNextHighestDepth());
fullImage_mc._x = _root.full_x;
fullImage_mc._y = _root.full_y;
fullImage_mc.buttonMode = true;
var fullClipLoader = new MovieClipLoader();
var fullPreloader = new Object();
fullClipLoader.addListener(fullPreloader);
fullPreloader.onLoadStart = function(target) {
target.createTextField("my_txt",fullImage_mc.getNextHighestDepth,0,0,200,20);
target.my_txt.selectable = false;
};
//fullImage_mc.onPress = function(target){
// new Tween(target, "_alpha", Strong.easeIn, 100, 0, .5, true);
//};
fullPreloader.onLoadProgress = function(target, loadedBytes, totalBytes) {
target.my_txt.text = Math.floor((loadedBytes/totalBytes)*100);
};
fullPreloader.onLoadComplete = function(target) {
new Tween(target, "_alpha", Strong.easeIn, 0, 100, .5, true);
target.my_txt.text = myTitle;
target.onPress = function()
{
// target.visible = false;
//trace(target);
// new Tween(target, "_alpha", Strong.easeOut, 100, 0, .5, true);
fullClipLoader.unloadClip(target);
}
};
fullClipLoader.loadClip("full_images/"+myURL,fullImage_mc);
}
// MASK FUNCTION CUT-OFF POINT OF CONTAINER
function createMask() {
_root.createEmptyMovieClip("mask_mc",_root.getNextHighestDepth());
mask_mc._x = _root.gallery_x;
mask_mc._y = _root.gallery_y;
mask_mc.beginFill(0x000000,100);
mask_mc.lineTo(_root.gallery_width,0);
mask_mc.lineTo(_root.gallery_width,_root.gallery_height);
mask_mc.lineTo(0,_root.gallery_height);
mask_mc.lineTo(0,0);
container_mc.setMask(mask_mc);
}
// SCROLLING FUNCTION HORIZONTAL
function scrolling() {
_root.onEnterFrame = function() {
// SCROLL ONLY WHEN ON CONTAINER
centerX = Number(_root.gallery_width);
scrollerWidth = Number(container_mc._width);
//trace(thumbnails.width);
speed = (-0.008 * (centerX/2 - _xmouse));
//trace(speed);
container_mc._x += speed;
container_mc1._x = container_mc._x + scrollerWidth+10 ;
//trace(container_mc._x);
//trace(container_mc1._x);
if (container_mc._x > 0) {
container_mc._x = (-scrollerWidth - 10);
}
if (container_mc._x < (-scrollerWidth -10)) {
container_mc._x = 0;
}
}
}