PDA

Volledige versie bekijken : variabel aantal buttons variabele acties meegeven


Jeff Obdeijn
%Europe/Berlin %673 %2005, 17:09
hee,

ik maak een variabel aantal buttons aan. Dit is me wel gelukt, echter wil ik met getUrl() voor elke button naar een andere site linken.

met het volgende lukt dat niet, want dan gaat elke button naar hetzelfde id en wel het laatste id in de for lus:

for (i=0; i < aantal; i++)
{
_root['button'+i].onRelease = function() {
getURL("profiel.php?id=" + i, "_blank");
}
}

misschien wel logisch, maar ik zou niet weten hoe het anders moet.... iemand?

Dauntless
%Europe/Berlin %680 %2005, 17:20
for (i=0; i < aantal; i++)
{
this["button"+i].id = i;
_root['button'+i].onRelease = function() {
getURL("profiel.php?id=" + this.id, "_blank");
}
}
:)

Jeff Obdeijn
%Europe/Berlin %685 %2005, 17:26
hee bedankt hij doet het, maar waarom deed mijn manier het niet dan?

Dauntless
%Europe/Berlin %688 %2005, 17:32
Omdat je de i lokaal moet opslaan in de movieclip, anders neemt hij voor elke knop de laatste waarde van i omdat wanneer je de movieclip aanklikt, i DIE waarde heeft. Maar als je dus de i lokaal opslaat in elke mc en die gebruikt werkt het wel :).

Jeff Obdeijn
%Europe/Berlin %698 %2005, 17:45
ja ik snap het een beetje iig hartstikke bedankt!

Jan van de Laar
%Europe/Berlin %575 %2005, 13:49
Heb ook een dergelijk probleem. Alle buttons (movieclips) worden keurig op hun plaats gezet. De onreleasehandles werkt ook. Dat is geen probleem. Waarom is de AP_id dan toch niet beschikbaar?



function showSpots()
{
spotArray_array = new Array();
var i;
for (i=0; i < this.n; i++) {
duplicateMovieclip(spot_mc, "spot_mc"+i,i);
spotArray_array[i] = _root["spot_mc"+i];
spotArray_array[i]._x = this["fCoord_X"+i];
spotArray_array[i]._y = this["fCoord_Y"+i];
spotArray_array[i].spot_name_txt = this["naam_id"+i];
_root['spot_mc'+i].onRelease = function() {
getURL("../htdocs/ankerpunten2.php?AP_code=" + this["naam_id"+i], "_self");
}
}
}
spot_mc._visible = 0;
spot2_mc._visible = 0;
kaart_mc._visible = 0;


// Create new load vars object c for data transfer
var c = new LoadVars();
c.onLoad = showSpots;

c.sendAndLoad("../digikaarten/getAnkerpunten.php",c,"POST");
KS_btn.onRelease = function() {
loadMovieNum("../digikaarten/DK_KS.swf", 2);
};
stop();

Jan van de Laar
%Europe/Berlin %549 %2005, 13:11
Heb het gevonden:
de onReleasefunction moest in de timeline van de spot_mc staan.

theFlashWizard
%Europe/Berlin %570 %2005, 13:41
huh.. weet je zeker dat dat het oplost? het is overgens erg verstandig al het script op 1 plek te houden he.. liefst de hoofdtijdlijn op een frame.