Hi Fellows
I have created a vertical scrolling 2d carousel which is managed through cms/xml.
The problem is when I add a new thumbnail on the XML(images.xml) list
the carousel doesn’t flow seamless, I either get gaps or overlapping.
At the moment i have tow move clips, when one has sroll down to the bottom of the screen it
get positioned at top again same applies for second movie clip.
you can see an example of it at http://overload.co.za/main.php
I have attached the source file as well, see source code below
one thing to note, the thumbnails have to be 115x115px
Any one with bright ideas, please assist
Thanks
//-----------------------------------------------------------------------ACTION SCRIPT
function loadXML(loaded) {
if (loaded) {
xmlNode = this.firstChild;
image = [];
thumbnails = [];
total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {
image* = xmlNode.childNodes*.childNodes[0].firstChild.nodeValue;
thumbnails* = xmlNode.childNodes*.childNodes[1].firstChild.nodeValue;
thumbnails_fn(i);
}
firstImage();
} else {
content = "file not loaded!";
}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load(“images.xml”);
/////////////////////////////////////
listen = new Object();
listen.onKeyDown = function() {
if (Key.getCode() == Key.LEFT) {
prevImage();
} else if (Key.getCode() == Key.RIGHT) {
nextImage();
}
};
/////////////////////////////////////
p = 0;
this.onEnterFrame = function() {
filesize = picture.getBytesTotal();
loaded = picture.getBytesLoaded();
preloader._visible = true;
if (loaded != filesize) {
preloader.preload_bar._xscale = 100*loaded/filesize;
} else {
preloader._visible = false;
if (picture._alpha<100) {
picture._alpha += 10;
}
}
};
function nextImage() {
if (p<(total-1)) {
p++;
if (loaded == filesize) {
picture._alpha = 0;
this.getURL(image[p], “_self”, 1);
desc_txt.text = description[p];
picture_num();
}
}
}
function firstImage() {
if (loaded == filesize) {
picture._alpha = 0;
picture.loadMovie(image[0], 1);
desc_txt.text = description[0];
picture_num();
}
}
function picture_num() {
current_pos = p+1;
pos_txt.text = current_pos+" / "+total;
}
function thumbNailScroller() {
// thumbnail code!
this.createEmptyMovieClip(“tscroller”,1000);
scroll_speed = 10;
tscroller.onEnterFrame = function() {
if (thumbnail_mc._y>=-(xmlNode.childNodes.length)*215) {
thumbnail_mc._y = thumbnail_mc._y+4;
}
if (thumbnail_mc._y>= 480) {
thumbnail_mc._y= thumbnail_mc._y=-(xmlNode.childNodes.length)*215
}
};
}
thumbNailScroller();
//-------------------------------------------------------------------------DUPLICATE MOVIE TRIAL
function thumbNailScrollerdup() {
// thumbnail code!
this.createEmptyMovieClip(“tscroller2”,1003);
scroll_speed = 10;
tscroller2.onEnterFrame = function() {
if (newmc._y>=-(xmlNode.childNodes.length)*215) {
newmc._y = newmc._y+4;
}
if (newmc._y>= 480) {
newmc._y= newmc._y=-(xmlNode.childNodes.length)*215
}
};
}
thumbNailScrollerdup();
function thumbnails_fn(k) {
thumbnail_mc.createEmptyMovieClip(“t”+k,thumbnail_mc.getNextHighestDepth());
newmc.createEmptyMovieClip(“t”+k,newmc.getNextHighestDepth());
tlistener = new Object();
tlistener.onLoadInit = function(target_mc) {
target_mc._y = hit_left._y+(target_mc._height+20)*k;
target_mc.pictureValue = k;
target_mc.onRelease = function() {
p = this.pictureValue-1;
nextImage();
};
target_mc.onRollOver = function() {
this._alpha = 50;
//newmc._y = newmc._y+3
delete tscroller.onEnterFrame;
delete tscroller2.onEnterFrame;
//dupMovie();
};
target_mc.onRollOut = function() {
this._alpha = 100;
thumbNailScroller();
thumbNailScrollerdup();
//removeMovieClip(newmc);
};
};
image_mcl = new MovieClipLoader();
image_mcl.addListener(tlistener);
image_mcl.loadClip(thumbnails[k],"thumbnail_mc.t"+k);
image_mcl.loadClip(thumbnails[k],"newmc.t"+k);
}