all groups > flash actionscript > february 2007 >
You're in the

flash actionscript

group:

Links from XML


Links from XML DaniFusionWeb
2/10/2007 6:29:52 PM
flash actionscript:
Hello everybody. I'm working with a XML driven photo gallery that looks like
this:

<gallery name="Birthday">
<image source="pics/pic5.jpg" thumb="pics/th5.jpg" title="Agreement"/>
<image source="pics/pic6.jpg" thumb="pics/th6.jpg" title="Landscape"/>
<image source="pics/pic7.jpg" thumb="pics/th7.jpg" title="Face"/>
<image source="pics/pic8.jpg" thumb="pics/th8.jpg" title="Sunset"/>
<image source="pics/pic9.jpg" thumb="pics/th9.jpg" title="My Girlfriend"/>
</gallery>

Now, I would need the title to become a link. Could anybody help me please?

Thanks so much

dani
Re: Links from XML sly one
2/10/2007 10:29:13 PM
A link to what? Where is the link data coming from? You will have to add
another attribute in your image tags. And you haven't shown your ActionScript,
so it's hard to know exactly how you are dealing with the XML. FYI you
shouldn't have spaces in your XML tags names. Use camelCase instead:
galleryName, imageSource, etc.
Re: Links from XML DaniFusionWeb
2/10/2007 10:34:53 PM
Here is the actionscript:

var tnNr;
spacing = 10;
container._alpha = 0;
var curLength;
MovieClip.prototype.loadPic = function(pic, id) {
info.text = "";
this._alpha = 0;
this.loadMovie(pic);
temp = this._parent.createEmptyMovieClip("temp2", 998);
temp.onEnterFrame = function() {
var t = container.getBytesTotal(), l = container.getBytesLoaded();
if (Math.round(l/t) == 1 && container._width != 0 && container._height != 0)
{
var w = container._width+spacing, h = container._height+spacing;
border.resizeMe(w, h, id);
delete this.onEnterFrame;
}
};
};
MovieClip.prototype.resizeMe = function(w, h, id) {
var speed = 3;
container._alpha = 0;
this.onEnterFrame = function() {
this._width += (w-this._width)/speed;
this._height += (h-this._height)/speed;
if (Math.abs(this._width-w)<1 && Math.abs(this._height-h)<1) {
this._width = w;
this._height = h;
container._x = this._x-this._width/2+spacing/2;
container._y = this._y-this._height/2+spacing/2;
info._y = Math.round(this._y+this._height/2+spacing/2);
container._alpha += 5;
if (container._alpha>90) {
info.text = id;
container._alpha = 100;
delete this.onEnterFrame;
}
}
};
};
function galleryChoice(q) {
pArray = new Array();
tArray = new Array();
iArray = 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++) {
pArray.push(gallery.childNodes[i].attributes.source);
tArray.push(gallery.childNodes[i].attributes.thumb);
iArray.push(gallery.childNodes[i].attributes.title);
}
}
delay = setInterval(makeButtons, 50);
};
my_xml.load("gallery.xml");
}
function makeButtons() {
tnNr = 0;
clearInterval(delay);
for (var i = 0; i<tArray.length; i++) {
var thb = th_nav.thmb.duplicateMovieClip("thmb"+i, 1000+i);
thb.id = i;
thb._x = i%2*50;
thb._y = Math.floor(i/2)*50;
}
loadButtons();
}
function loadButtons() {
var tbox = th_nav["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;
}
};
}
function nextButton() {
if (tnNr<tArray.length-1) {
tnNr++;
loadButtons();
} else {
activateButtons();
}
}
function activateButtons() {
mainButtons();
for (var i = 0; i<pArray.length; i++) {
var but = th_nav["thmb"+i];
but.id = i;
but.onRelease = function() {
container.loadPic(pArray[this.id], iArray[this.id]);
disButtons2(this.id);
};
}
container.loadPic(pArray[0], iArray[0]);
disButtons2(0);
}
butArray = new Array();
butArray = ["gal1_btn", "gal2_btn", "gal3_btn", "gal4_btn"];
function mainButtons() {
for (var i = 0; i<butArray.length; i++) {
this[butArray[i]].id = i;
this[butArray[i]].onRelease = function() {
galleryChoice(this.id);
disButtons(this.id);
};
}
}
function disButtons2(d) {
for (var i = 0; i<tArray.length; i++) {
if (i != d) {
this.th_nav["thmb"+i].enabled = 1;
this.th_nav["thmb"+i].box._alpha = 100;
} else {
this.th_nav["thmb"+i].enabled = 0;
this.th_nav["thmb"+i].box._alpha = 50;
}
}
}
function disButtons(d) {
for (var i = 0; i<butArray.length; i++) {
if (i != d) {
this[butArray[i]].enabled = 1;
this[butArray[i]].gotoAndStop(1);
} else {
this[butArray[i]].enabled = 0;
this[butArray[i]].gotoAndStop(2);
}
}
}
disButtons(0);
galleryChoice(0);

Re: Links from XML Cor
2/11/2007 4:10:16 AM
First of all I notice you create every MC on the same depth:
temp = this._parent.createEmptyMovieClip("temp2", 998);

I think this might be a better way:
temp = this._parent.createEmptyMovieClip("temp2",
this.getNextHighestDepth());

Then: how is the link used?
I guess in your xml you should create the myURL="http://whatever/etc"
attribute
and use a textfield with textHTML = true;

But I am not sure this is what you want?
Can you show the fla?

Regards
Cor
AddThis Social Bookmark Button