PDA

Volledige versie bekijken : OnRollover


alonsomoseley
%Europe/Berlin %447 %2005, 11:43
Hoi,

ik probeer een menu te maken met behulp van XML.
ik wil bij een RollOver van een button, een submenu laten zien.
Ik gebruik dit

button.onRollOver=ShowSubMenu(currentnode.childNod es,button._x,button._y,i);

waarbij button een MovieClip is.

maar 'ShowSubMenu' wordt altijd aangeroepen. Ook zonder een rollover dus.

weet iemand hoe dat komt?

Flasher
%Europe/Berlin %465 %2005, 12:10
op deze manier krijgt button.onRollOver de returnwaarde van ShowSubMenu();
Je moet de functie-aanroep in de onRollover zetten:
button.onRollOver = function() {
ShowSubMenu(currentnode.childNodes,button._x,butto n._y,i);
}

alonsomoseley
%Europe/Berlin %544 %2005, 14:04
Flasher, thanks, ik kwam er door testen ook achter.
Maar helaas zijn de variabelen (currentnode.childNodes,button._x,butto n._y,i) undefined binnen de onRollOver-functie.

alonsomoseley
%Europe/Berlin %547 %2005, 14:08
Sorry, het probleem ligt nog anders.
Ik post even wat code:

_XML=new XML();
_XML.ignoreWhite = true;
_XML.onLoad = function()
{
var root = this.firstChild;
if (root.hasChildNodes())
{
for(var i=0;i<root.childNodes.length;i++)
{
var currentnode=root.childNodes[i];
var menutitemname=currentnode.attributes.naam;
var buttonname=new String("button_0"+i);
button=eval(buttonname);
button.caption.text=menutitemname
button.onRollOver = function()
{
trace(i);
}
if (currentnode.hasChildNodes())
{
// create submenu
ShowSubMenu(currentnode.childNodes,button._x,butto n._y,i);
}
}
}
}

Ik wil dus voor een aantal dynamische buttons een onRollOver-functie toevoegen.
Maar voor elke button (ik heb er 8 ), geeft de trace(i); ALTIJD de waarde 8 terug. Ik zou hier graag het getal 1 t/m 8 zien

theFlashWizard
%Europe/Berlin %551 %2005, 14:14
dat klopt.. dat is ergens ook wel logisch want de loop is allang voltooit wanneer jij rollover uitvoert..
de truc zit em er dus in dat jij die i opslaan in die button..
button.i = i
dan kan je hem zo aanvragen:
button.onRollOver = function(){
trace(this.i);
}

enne hoe je een button naam samensteld is ook erg omslachtig hoor.. :P (no offence)

var buttonname=new String("button_0"+i);
button=eval(buttonname);
kan namelijk ook zo:
button=this["button_0"+i]

alonsomoseley
%Europe/Berlin %571 %2005, 14:42
No offence taken :)
Nee, hoor ik krijg graag feedback op dit soort dingen.
Mag ik ook een XML node in de button stoppen?

Kijk, in C# zou ik die button subclassen en strong-typed een XML toevoegen. Kan dat hier ook?

theFlashWizard
%Europe/Berlin %573 %2005, 14:46
em.. je kan de gegevens uit die xml node opslaan in een variabele in de button.. als je dat bedoelt..
maar wat je met de rest bedoelt weet ik helaas niet.. :$