PDA

Volledige versie bekijken : Flash menu


conrad
%Europe/Berlin %481 %2005, 12:33
Ik heb een website waarin een Flash menu is ingebouwd. Het menu bestaat uit 5 onderdelen (opgebouwd als Buttons in Flash), als men op een onderdeel klikt wordt de juiste html pagina geladen. Dit werkt allemaal perfect.

Maar hoe kan ik er nu voor zorgen dat als er bijvoorbeeld op het eerste menu-item werd geklikt en ik dus bijvoorbeeld in de rubriek "nieuws" zit, dat die eerste button waar nieuws opstaat een andere kleur krijgt (zodat het duidelijk is dat de bezoeker op de nieuws pagina zit) ...

Misschien door een parameter mee te geven via de source? Maar het lukt mij niet eens om programmatisch een button van kleur te veranderen (is dit wel mogelijk?) dus alle hulp is welkom.

Alvast bedankt!

$ilver
%Europe/Berlin %488 %2005, 12:42
Dus je hebt alleen het menu in flash? Niet de gehele website?
En als niet alles in flash is, werk je dan ook met css? of alleen met bijv. html!?

conrad
%Europe/Berlin %491 %2005, 12:48
Alleen het menu is Flash, de rest is gewoon HTML (voorlopig geen CSS) ; maar het gaat dus om de menu-items (flashbuttons) die bijvoorbeeld blauw moeten worden als ze geselecteerd zijn...

Fatty Owl
%Europe/Berlin %526 %2005, 13:37
zo als in het bijgesloten bestand misschien?

conrad
%Europe/Berlin %545 %2005, 14:05
Ja, dit geeft mij er al een beter zicht op. Maar nu is mijn vraag : je gebruikt movieclips hier, is dit ook mogelijk met gewone buttons (aangezien ik bij de buttons die ik gebruik up, down, over & hit states heb ingesteld) ; of is er hier een workaround voor?

Ik heb zelf dit al eens geprobeerd : van mijn button een movieclip gemaakt met _up, _over _down labels. En hier heb ik in de code naar verwezen :

contact.onRelease = function() {
_root.contact.gotoAndStop(_over);
//getUrl("nieuws.html")
}

Maar dit lukt blijkbaar niet, wat doe ik verkeerd?

Thanks!

Stuf
%Europe/Berlin %566 %2005, 14:35
framelabels moeten volgens mij tussen aanhalingstekens..

dus:
contact.onRelease = function() {
_root.contact.gotoAndStop("_over");
//getUrl("nieuws.html")
}

in mijn scaling tutorial staat aan het eind hoe je kleurovergangen kunt maken met AS.
Mss heb je daar wat aan..

succes..

conrad
%Europe/Berlin %567 %2005, 14:37
Dat van die aanhalingstekens klopt maar had ik intussen al aangepast... Ik heb ergens gelezen dat als je bij een Movieclip de framelabels instelt met _up, _over, _down je automatisch button functionaliteit krijgt ofzo, weet iemand hier iets meer over ?

Stuf
%Europe/Berlin %570 %2005, 14:41
zou goed kunnen ..
want ik was het even aan het proberen.. en d'r gebeurden al dingen die ik niet kon plaatsen :P

maar in de code die ik je gaf.. moet je dan wel die underscore weghalen..

conrad
%Europe/Berlin %587 %2005, 15:06
Werkt nog steeds niet, het werkt dus wel zoals in het voorbeeld van "Fatty Owl" ; maar van het moment dat ik gebruik maak van de labels _up, _over _down is het blijkbaar niet meer mogelijk om naar die labels te springen. Wat zie ik over het hoofd?

Fatty Owl
%Europe/Berlin %609 %2005, 15:38
omdat (waarschijnlijk) vanaf dan het word aangezien als een button, en dus kan het alleen overspringen zoals het zou doen als het een button was. niet met AS dan.

eigenlijk kan je ook een nieuwe layer maken met de groene tekst. die kan je net over de zwarte zetten en beginnen te knoeien met _visible.

Fatty Owl
%Europe/Berlin %795 %2005, 20:05
ik denk wel (ik ben niet 100% zeker) dat deze topic eigenlijk onder AS valt.

Dauntless
%Europe/Berlin %807 %2005, 20:23
Jup, 'k heb hem naar AS gezet :).

Flasher
%Europe/Berlin %828 %2005, 20:52
Ik heb even een fla-tje voor je gemaakt.
Er zitten drie MCs in die zich gedragen als buttons, en als je er op klikt blijven ze op het "over" frame staan (todat je op een andere klikt)
Ik neem aan dat je het zelf wel kan aanpassen voor je eigen fla

conrad
%Europe/Berlin %541 %2005, 13:59
Ik heb de code geïntegreerd en deze werkt, bedankt! Maar ik zit nog met een laatste probleem. Na het klikken op één van de navigatie-onderdelen wordt er een HTML-bestand geladen, nadat dit HTML-bestand geladen is, wordt de Flash-code genegeerd denk ik en wordt er dus niet meer aangeduid welke knop ingedrukt is en op welke pagina de bezoeker zich dus bevindt.

Flasher
%Europe/Berlin %707 %2005, 17:58
je kan frames gebruiken... je swf in het ene frame en je html in het andere.
Als dat niet kan zal je een SharedObject (flashcookie) moeten gebruiken.
//edit ik neem dus aan dat het probleem veroorzaakt wordt door het refreshen van je html (en dus ook je swf)

conrad
%Europe/Berlin %757 %2005, 19:11
Frames wil ik liever vermijden. Ik ben met het commentaar aan het werk gegaan en het werkt nu via een SharedObject, maar soms werkt het nog steeds niet. Als ik de pagina dan refresh (F5) werkt het altijd (en blijft het menu-item waar de gebruiker op zit dus in een andere kleur, zoals gewenst).

Kan je onderstaande code misschien eens bekijken (waarschijnlijk niet de meest ideale code, maar doet nu toch bijna wat ik wil).

Is het trouwens mogelijk om via actionscript een refresh uit te voeren gelijkwaardig aan F5?


var activeMC:Number = 0;
var aantalMCs:Number = 4;
var IsoPrefs:sharedObject = SharedObject.getLocal("userPrefs");
//sharedObject hier met kleine letter anders krijg ik een smiley ofzo...
if (IsoPrefs.data.title == 1) {
trace("nieuws");
mc1.gotoAndStop(3);
}

if (IsoPrefs.data.title == 2) {
trace("info");
mc2.gotoAndStop(3);
}

if (IsoPrefs.data.title == 3) {
trace("contact");
mc3.gotoAndStop(3);
}

if (IsoPrefs.data.title == 4) {
trace("gastenboek");
mc4.gotoAndStop(3);
}

for (i=1; i<=aantalMCs; ++i) {
var mcRef:MovieClip = this["mc"+i];
//maakt een referentie naar een mc
mcRef.id = i;
mcRef.onRollOver = function() {
if (this._parent.activeMC != this.id) {
this.gotoAndStop(2);
}
};
mcRef.onRollOut = mcRef.onDragOut = function() {
if (this._parent.activeMC != this.id) {
this.gotoAndStop(1);
}
};
mcRef.onPress = function() {
if (this._parent.activeMC != this.id) {
this.gotoAndStop(3);
}
};
mcRef.onRelease = function() {

this._parent["mc"+activeMC].gotoAndStop(1);
this._parent.activeMC = this.id;
this.gotoAndStop(3);

IsoPrefs.data.title = this.id;
trace(this.id);
IsoPrefs.flush;

switch(this.id) {
case 1:
getURL("nieuws.html?"+Math.random());
break;
case 2:
getURL("info.html?"+Math.random());
break;
case 3:
getURL("contact.html?"+Math.random());
break;
case 4:
getURL("gastenboek.html?"+Math.random());
break;
}




}
}