PDA

Volledige versie bekijken : Dynamisch menu maken


mikiscje
%Europe/Berlin %834 %2005, 21:01
Hallo allemaal,

Ik ben aan het proberen om een dynamisch menu te maken.

Ik heb 12 dynamische textFields in m'n frame staan die worden gevuld met variabelen verkregen uit php.

Hierover komt met ._visible een button met daarin een voorgedefinieerde on(rollover) en on(rollout).

Echter wil ik hieraan een on(release) actie koppelen, die afhankelijk is van de data die uit php is meegestuurd.

Dit wil echter niet lukken, omdat ik met een if, else if, else statement wil werken, maar dat werkt niet.
De variabele wordt niet vergeleken(schijnbaar) en dus krijg ik geen link.

Dus kan ik er ook geen actie aan koppelen.
Ook wordt de variabele uit het desbetreffende textField niet meegegeven naar het "goto" frame.

Hoe zou ik dit kunnen oplossen?
Of is er een betere manier (gehele button aanmaken in actions)?

Alvast bedankt!

hier is de code:

function searchAndReplace(holder, searchfor, replacement) {
temparray = holder.split(searchfor);
holder = temparray.join(replacement);
return (holder);
}
for(clr = 1; clr < 13; ++clr){
var menu_knop = "menu_knop"+clr;
eval(menu_knop)._visible = false;
}
myData = new LoadVars();
myData.onLoad = function(){
placeTheDataIntoTheRightPlace();
};
myData.load("http://localhost/temp/menu.php");

placeTheDataIntoTheRightPlace = function(){
var vled = "";
var count = myData["count"];
++count;
for(var i = 1; i < count; ++i){
var vled = "Vak"+i;
var mnkn = "menu_knop"+i;
var myreplaced = searchAndReplace(myData["menu"+i], "|", "&");
eval(vled).text = myreplaced;
eval(mnkn)._visible = true;
var link = myData["link"+i];

if(link = 1)
{
mnkn.onRelease = function(){
var vak = eval(["Vak"+i]);
eval(vak).border = false;
var speci = eval(["Vak"+i]).text;
trace(speci);
gotoAndStop(81);
};
}
else if(link > 1 && link < 999)
{
knop[i] = function(){
Vak9.border = false;
var vak = eval(["Vak"+i]);
var speci = vak.text;
gotoAndStop(link);
};
}
else
{
knop[i] = function(){
getUrl(link);
};
}
vled = "";
mnkn = "";
}
}
stop();

theFlashWizard
%Europe/Berlin %870 %2005, 21:53
owke.. weer dit probleem.. heel iri.. dit komt men ook in zo veel verschillende situaties tegen dat de zoekfuntie helaas nutteloos is..
maar goed..
oplossing staat bij nummertje 5 ;)
http://www.flashfocus.nl/forum/showthread.php?t=189&highlight=AStips

mikiscje
%Europe/Berlin %900 %2005, 22:37
Ondanks dat het hier zeer moeilijk schijnt te zijn voor sommigen om beginners een zetje de goede kant op te geven met een normaal antwoord, dat niet gepaard gaat met sarcasme of irritatie, wil ik toch hartelijk dank zeggen voor dit fijne antwoord.

Gegroet!

Pimm
%Europe/Berlin %902 %2005, 22:39
Ondanks dat het hier zeer moeilijk schijnt te zijn voor sommigen om beginners een zetje de goede kant op te geven met een normaal antwoord, dat niet gepaard gaat met sarcasme of irritatie, wil ik toch hartelijk dank zeggen voor dit fijne antwoord.

Gegroet!Mate, verdediging is niet nodig, je werd niet aangevallen weet je?

theFlashWizard
%Europe/Berlin %903 %2005, 22:40
dit was niet sarcasme en geen iritatie tegen iemand.. ik zeg alleen dat het jammer is.. maar ik wijs niemand aan als schuldige..

snap je punt 5? en zoniet waarom niet? want ik wil je best wel helpen hoor..

mikiscje
%Europe/Berlin %915 %2005, 22:58
Foutje van mijn kant, sorry!

Na mijn eerste thread op dit forum ben ik 2 dagen bezig geweest om zelf een en ander te combineren en uit te proberen, om zo aan de oplossing te komen die ik in dezelfde thread al vroeg.

Nu ben ik ook al weer 3 dagen bezig om uit te zoeken hoe ik het beste een button (of mc) dynamisch aan kan maken vanuit actionscript om zo alle variabelen mee te geven die ik inlaad vanuit php.

Dit motiveerd niet echt, sorry.
Ik weet dat dit aan mijzelf ligt, omdat ik altijd te veel te snel wil. (overslaan van de basis)

Dus nogmaals sorry!


Zoals ik al schreef, ben ik al 3 dagen een oplossing aan het zoeken om een button of mc aan te maken vanuit actionscript.
Ik heb ongeveer 100 forum berichten en artikelen hierover doorgelezen op internet, maar volgens mij mis ik een stukje aan het begin.

Wat de bedoeling is: een variabel aantal buttons (of mc's) maken die fungeren als button en waarmee ik bv een beweging kan maken o.i.d.

In de on(rollover) wordt er text opgehaald vanuit een php bestand en in een textvak gepresenteerd op de pagina. (al gelukt)

In de on(rollout) word dit vak weer weggehaald. (al gelukt)

Nu wil ik in de on(release) ofwel een standaard procedure volgen (naar volgend frame, met variabele) of naar een specifiek frame (doorgegeven met 1e var) of naar een link met getUrl() (ook meegegeven uit 1e php bestand).

Na alles dat ik tegen ben gekomen in de forums denk ik dat dit het makkelijkste kan met een dynamisch textvak in een mc vanuit de lybary te kopieren op de pagina en daaraan al deze aties gelijk mee te geven.

Mijn vraag (eindelijk, hihi)

Hoe kan ik dit het beste aanpakken?
- extern script
- duplicateMovieClip
- attachMovieClip
- anders

en waar moet ik dan aan denken?
(als je een mc maakt met textField kun (of moet) je die koppelen aan linkage? en hoe?)

Ik hoop dat iemand mij hiermee kan (en nog wil) helpen.

Alvast bedankt!

theFlashWizard
%Europe/Berlin %291 %2005, 08:00
omdat je je knoppen uit de library wil kopieren eigenlijk is attach de enigste beste oplossing..
hier onder een voorbeeldje van een dynamisch menu, 1tje waarbij het probleem dat jij onderandere had opgelost is.


linktext = ["Home","Aurastylisten","Aura's","Ervaringen","Links","contact"]

for(i=0;i<linktext.length;i++){
button_mc = attachMovie("button_mc","button_mc"+i,i)
button_mc._y = 50
button_mc._x = (i==0)? 25 : prev_button_mc._x + prev_button_mc._width

button_mc.linktext_txt.text = linktext[i]
button_mc.i = i
prev_button_mc = button_mc

button_mc.onRollOver = function(){
_root.welke = this.i
}
button_mc.onRollOut = function(){
_root.welke = _root.welkeP
}
button_mc.onRelease = function(){
_root.welkeP = _root.welke = this.i
}
}

dit voorbeeldje zet de knoppen horizontaal tegenmekaar :)

jou probleem was dat in die for lus de i het nummer van die button bevatte..
alleen wanneer je drukt is die for lus al voltooit en heeft de i zijn laatste waarde van de lus
de simpelste oplossing is dan die i opslaan in de button zelf
dat doe je door de naam van de button te typen een punt en dan de variabele naam.
i lijkt het meest logisch. (dit zorgt ervoor dat die variabele in die button opgeslagen wordt.) en die dan gelijk te maken met de i op dat moment
button_mc.i = i

deze variabele spreek je dan in de onRelease aan als this.i

Khoop dat deze uitleg een btje helder is.. Als je em zo duidelijk vind ga ik em denk ff in een aparte post zetten en daar steeds heen verwijzen, wanneer men dat probleem heeft :)

mikiscje
%Europe/Berlin %498 %2005, 12:57
Ja geweldig!!

Dankjewel.

Het enige dat ik nog uit moest vinden (waarschijnlijk basic, maar misschien kun je dat er nog bij zetten) was dat je inderdaad nadat je een movieclip "button_mc" aangemaakt hebt met daarin een dynamic TextField "linktext_txt", je deze met linkage MOET exporteren voor actionscript, anders werkt het nog niet.

waanzinnig bedankt voor de moeite.
Nu kan ik weer verder.

Groetjes,

Mikiscje

mikiscje
%Europe/Berlin %713 %2005, 18:06
Nog een nieuw vraagje:

Bij 1 layer werk de code prima, maar als ik meerdere layers aanmaak dan wordt er niets op het scherm getoond.

Waar moet ik wat aangeven, zodat dit wel getoond wordt?

Alvast bedankt!

theFlashWizard
%Europe/Berlin %724 %2005, 18:23
mikiscje, ik snap ff nie hoe jij een textvak exporteerd.. verklaar je is nader..
layers hebben niks met script te maken.. je hebt niet een masker ingevoegt eroverheen?

mikiscje
%Europe/Berlin %734 %2005, 18:37
Ik heb een movie gemaakt button_mc met daarin een dynamisch textvak "linktext_txt".

Ik bedoelde dat je deze mc moest exporteren voor actionscript bij linkage.

Tenminste bij mij werkte dit anders niet.

'k Heb ook een oplossing gevonden voor mijn vorige vraag:

Bij 1 layer werk de code prima, maar als ik meerdere layers aanmaak dan wordt er niets op het scherm getoond.

Waar moet ik wat aangeven, zodat dit wel getoond wordt?

Ik weet niet waarom het nu wel werkt, maar ik heb bij linkage gekozen voor de optie "export for runtime sharing" en toen werkte het wel.

theFlashWizard
%Europe/Berlin %771 %2005, 19:30
oww.. ja dat moet je idd doen voordat je het uit de library kan halen.. :)
ow mooi zo.. :)