Hi, I’m new to this board but I’ve looked around trying to find the answer to my problem and it sounds like I might actually find the answer. So here’s the problem: I have a parent swf that loads 5 child swfs. Everything loads fine but after the xml loads the data there is no functionality on the child swfs other than the listen command to use the left and right keys to switch between images. The scrolling and buttons on the child swf become deactivated.
I’ve traced the problem to the activateButtons() function. I’ve tried modifying it with no luck. If I comment out the function then the child swf works and the parent swf doesn’t.
I got the code for the parent swf online and I can’t even remember where, but here it is (modified):
makeButtons();
import mx.transitions.Tween;
import mx.transitions.easing.*;
Object.Main = this;
var distanceMove = 545;
onLoad.moveButtons(0);
function galleryChoice(q) {
tArray = new Array();
my_xml = new XML();
for (var j = 0; j<curLength; j++) {
this.th_nav["thmb"+j].removeMovieClip();
}
my_xml.ignoreWhite = true;
my_xml.onLoad = function(loaded) {
if (loaded) {
gallery = this.firstChild.childNodes[q];
curLength = gallery.childNodes.length;
for (var i = 0; i<gallery.childNodes.length; i++) {
tArray.push(gallery.childNodes*.attributes.movie);
}
}
delay = setInterval(makeButtons, 10);
};
my_xml.load("samples.xml");
}
function makeButtons() {
tnNr = 0;
clearInterval(delay);
for (var i = 0; i<tArray.length; i++) {
var thb = container.thumb.duplicateMovieClip("thmb"+i, 1000+i);
//
//trace(pArray*);
thb._x = 165+(i*48);
//container.thmb5.menuTitle
//trace(thb.menuTitle.text = pArray*);
thb.txt.text = pArray*;
}
loadButtons();
}
function loadButtons() {
var tbox = container["thmb"+tnNr].box;
tbox.loadMovie(tArray[tnNr]);
temp = this.createEmptyMovieClip("tmp"+tnNr, 999);
temp.onEnterFrame = function() {
bt = tbox.getBytesTotal();
bl = tbox.getBytesLoaded();
if (bt == bl && bt>4) {
nextButton();
delete this.onEnterFrame;
} else {
activateButtons();
}
};
}
function nextButton() {
if (tnNr<tArray.length-1) {
tnNr++;
loadButtons();
} else {
activateButtons();
}
}
function activateButtons() {
for (var i = 0; i<tArray.length; i++) {
var but = container["thmb"+i];
but.id = i;
//trace(but.id);
but.onRelease = function() {
moveButtons(this.id);
lastPos=this.id;
};
but.onRollOut = function() {
//moveButtons2(this.id);
};
}
}
function moveButtons(pos) {
//trace(lastPos);
for (var j = 0; j<tArray.length; j++) {
startX = 165+(j*48);
if (j<=pos) {
var myTween:Tween = new Tween(container["thmb"+j], "_x", mx.transitions.easing.Strong.easeOut, container["thmb"+j]._x, startX, 3, true);
} else {
var myTween:Tween = new Tween(container["thmb"+j], "_x", mx.transitions.easing.Strong.easeOut, container["thmb"+j]._x, startX+distanceMove, 3, true);
}
}
}
function moveButtons2() {
for (var j = 0; j<tArray.length; j++) {
startX = 165+(j*65);
var myTween:Tween = new Tween(container["thmb"+j], "_x", mx.transitions.easing.Strong.easeOut, container["thmb"+j]._x, startX, 1, true);
}
}
galleryChoice(0);
Here is the child swf code:
function loadXML(loaded) {
if (loaded) {
xmlNode = this.firstChild;
image = [];
description = [];
thumbnails = [];
total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {
image* = xmlNode.childNodes*.childNodes[0].firstChild.nodeValue;
description* = xmlNode.childNodes*.childNodes[1].firstChild.nodeValue;
thumbnails* = xmlNode.childNodes*.childNodes[2].firstChild.nodeValue;
thumbnails_fn(i);
}
firstImage();
} else {
content = "file not loaded!";
}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("web.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 += 7;
}
}
};
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;
}
function thumbNailScroller() {
// thumbnail code!
this.createEmptyMovieClip("tscroller", 1000);
scroll_speed = 7;
tscroller.onEnterFrame = function() {
if ((_root._ymouse>=thumbnail_mc._y) && (_root._ymouse<=thumbnail_mc._y+thumbnail_mc._height)) {
if ((_root._xmouse>=(hit_right._x-40)) && (thumbnail_mc.hitTest(hit_right))) {
thumbnail_mc._x -= scroll_speed;
} else if ((_root._xmouse<=(hit_left._x+40)) && (thumbnail_mc.hitTest(hit_left))) {
thumbnail_mc._x += scroll_speed;
}
} else {
delete tscroller.onEnterFrame;
}
};
}
function thumbnails_fn(k) {
thumbnail_mc.createEmptyMovieClip("t"+k, thumbnail_mc.getNextHighestDepth());
tlistener = new Object();
tlistener.onLoadInit = function(target_mc) {
target_mc._x = hit_left._x+(target_mc._width+5)*k;
target_mc.pictureValue = k;
target_mc.onRelease = function() {
p = this.pictureValue-1;
nextImage();
};
target_mc.onRollOver = function() {
this._alpha = 50;
thumbNailScroller();
};
target_mc.onRollOut = function() {
this._alpha = 100;
};
};
image_mcl = new MovieClipLoader();
image_mcl.addListener(tlistener);
image_mcl.loadClip(thumbnails[k], "thumbnail_mc.t"+k);
}
I really appreciate any help I can get, and this is really urgent. THANKS!
-JoshDV