|
-
How in the...? Hide XML/array gallery
http://www.thewoj.com/thewoj.swf
If you look at the link I have a gallery in place that works thus far. My problem is when clicking the nav. buttons (Bio, contact) the xml gallery continues over into those frames.
The xml file is not a movie clip. The grid is writen and run using actionscript below. I figured this would be an easy fix but ive been coming back to this thing for over a week now and it seems like everyone else on the board is stumped.
PHP Code:
cliparray = [];
columns = 5;
spacex =80
spacey=75
function loadXML(loaded) {
if (loaded) {
xmlNode = this.firstChild;
image = [];
description = [];
thumbnails = [];
total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {
image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
thumbnails[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
}
sload()
firstImage();
} else {
content = "file not loaded!";
}
}
function drawSquare(clip, depth, colour, x, y, w, h) {
var mc = clip.createEmptyMovieClip("clip"+depth, depth);
mc._x = x;
mc._y = y;
mc.lineStyle();
mc.beginFill(colour);
mc.lineTo(w, 0);
mc.lineTo(w, h);
mc.lineTo(0, h);
mc.endFill();
return mc;
}
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();
}
};
Key.addListener(listen);
previous_btn.onRelease = function() {
prevImage();
};
next_btn.onRelease = function() {
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;
picture.loadMovie(image[p], 1);
desc_txt.text = description[p];
picture_num();
}
}
}
function prevImage() {
if (p>0) {
p--;
picture._alpha = 0;
picture.loadMovie(image[p], 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;
}
var ij=0
function sload() {
for (var i = 0; i<image.length; i++) {
var clip = drawSquare(this, i, 0, 0, 0, 60, 60);
clip._x =350+ (i%columns)*spacex;
clip._y =205+ Math.floor(i/columns)*spacey;
var clap =clip.createEmptyMovieClip("tt",1)
clap._x = 2
clap._y = 2
cliparray.push(clap);
clip.pictureValue =i;
clip.onRelease = function() {
p = this.pictureValue-1;
nextImage();
};
clip.onRollOver = function() {
this._alpha = 50;
};
clip.onRollOut = function() {
this._alpha = 100;
};
}
startload()
}
this.createEmptyMovieClip("checker",1000)
function checkload() {
checker.onEnterFrame = function() {
if (cliparray[ij]._width) {
delete this.onEnterFrame;
if (ij<cliparray.length-1) {
ij++;
startload();
}
}
};
}
function startload() {
cliparray[ij].loadMovie(thumbnails[ij]);
checkload();
}
-
FK'n_dog
what have you tried ?
when you move frames, run a loop to remove created clips
for (var i = 0; i<image.length; i++) {
this["clip"+i].removeMovieClip();
}
-
can you tell me wich is the movieClip(s) holding the stuff?
var clip = drawSquare(this, i, 0, 0, 0, 60, 60);
clip._x =350+ (i%columns)*spacex;
clip._y =205+ Math.floor(i/columns)*spacey;
var clap =clip.createEmptyMovieClip("tt",1)
clap._x = 2
this is horrible cascading imo. shrouds the original path´s, but my guess is that the path´s are:
_root["clip"+0].tt
_root["clip"+1].tt
_root["clip"+2].tt
...
that sure took me while to get
anyway you could simply use a array that deletes the movieClips that need to be removed, e.g
PHP Code:
dumpMcs = new Array();
and each time you created a new movieClip or a container (if it contains sub movieCLip those sub movieClip dont need to be added), you add that link of the movieClip, e.g
PHP Code:
dumpMcs.push( _root["clip"+i] )
then finally if you switch to another category and want to remove these registered movieCLips use:
PHP Code:
for (var i = 0; i<dumpMcs.length; i++) {
dumpMcs[i].removeMovieClip();
}
edit: doggy was faster than me,- with basicly the same concept
-
Thanks guys. I figured it out. I had the action script above in a blank keyframe on the timeline instead of the movie clip with the gallery container.
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
|