Avatar billede plastic.gangsta Nybegynder
14. januar 2007 - 12:17 Der er 6 kommentarer

tung kode, er der nogen som kan hjælpe med at gøre den smartere

Hej,

Jeg har en menu med en række punkter og et par underpunkter. Når jeg trykker på et underpunkt bruger jeg mctween til at farvekode den med, således den får en rød farve - intet problem. Når man så trykker på et andet underpunkt skal den selvfølgelig også farves rød (heller intet problem der) men så skal jeg jo sikre at det punkt som var rødt før nu kommer tilbage til den oprindelige farve. Det har jeg gjort ved at lave en funktion som simpelthne farver alle submenupunkter ca. (28 stks.) til den oprindelige hvide farve.

Det fungerer sådan set ok, men nogen gange er den lidt langsom, hvilket jeg går udfra skyldes at den skal tweene 28 punkter - det jeg godt kunnet tænke mig var at man skrev denne funktion lidt smartere såldes at den kun farvede de punkter som er røde til hvid og de punkter som er hvide i forvejen blot forbliver hvide.

function farveallehvid (){

this.menu.menu1.submenu1.one.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
    this.menu.menu1.submenu1.two.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
    this.menu.menu1.submenu1.three.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
   
    this.menu.menu2.submenu2.one.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
    this.menu.menu2.submenu2.two.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
    this.menu.menu2.submenu2.three.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
    this.menu.menu2.submenu2.four.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
    this.menu.menu2.submenu2.five.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
    this.menu.menu3.submenu3.a.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu3.submenu3.b.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu3.submenu3.c.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu3.submenu3.d.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu3.submenu3.e.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                   
                    this.menu.menu5.submenu5.a.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu5.submenu5.b.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu5.submenu5.c.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu5.submenu5.d.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu5.submenu5.e.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                   
                    this.menu.menu6.submenu6.a.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu6.submenu6.b.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu6.submenu6.c.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu6.submenu6.d.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                   
                    this.menu.menu7.submenu7.a.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu7.submenu7.b.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu7.submenu7.c.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu7.submenu7.d.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                   
                    this.menu.menu8.submenu8.a.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu8.submenu8.b.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu8.submenu8.c.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
                    this.menu.menu8.submenu8.d.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);

                   
}

Overstående har jeg blot brugt 3 variable _global.farvehvid (farvekode til hvid), _global.farvehvidtid (tidsparamter) , _global.farvehvidtype (tweening type)


Er der nogen som kan hjælpe???
Avatar billede mat Nybegynder
14. januar 2007 - 14:08 #1
Hver gang du trykker på en knap gemmer du en reference til den, og på den knap der trykkes på herefter farver du den forrige hvid (ved at bruge den reference du lige har gemt), derefter opdaterer du referencen med den der lige er trykket på;

// pseudo
btn.onRelease = function() {
if ( previous != null ) colorWhite(previous);
colorRed(this);
previous = this;
}

mvh mat
Avatar billede plastic.gangsta Nybegynder
17. januar 2007 - 21:39 #2
hej mat
kan du hjælpe kort lidt mere
ColorWhite og Colorred funktionerne, hvordan skal de så se ud?
Avatar billede plastic.gangsta Nybegynder
17. januar 2007 - 21:40 #3
altså det jeg tænker på er at jeg forstår godt dit koncept, men hvordan specificerer jeg i colorRed funktionen at den skal pege på previous, hvordan finder den stien til dette præcise clip?
Avatar billede mat Nybegynder
18. januar 2007 - 13:40 #4
previous = this; <- der sættes "stien", previous er "global" på pågældende "tidslinie" og deles af alle.

mvh mat
Avatar billede plastic.gangsta Nybegynder
18. januar 2007 - 18:31 #5
ser colorWhite blot således ud
function colorWhite(){
previous.colorTo(_global.farvehvid,_global.farvehvidtid,_global.farvehvidtype);
}

??
Avatar billede mat Nybegynder
18. januar 2007 - 19:47 #6
ja hvis den farver clippet hvid ;) ..det jeg har skrevet er bare pseudokode der skal illustrere princippet, du skal selv "fill in the blanks".

mvh mat
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester