Avatar billede jacup Nybegynder
15. januar 2002 - 10:55 Der er 3 kommentarer og
2 løsninger

Hvordan?? (Haster)

Hey!
Hvordan laver jeg dette?

Jeg har 5 knapper på min hjemmeside som er lavet i flash. Knapperne er placeret øverst og på række. Jeg øsnker så at når jeg trykker på dem skal den knap man nu har trykket på flyve ned i bunden og blive der. Hvis jeg fx trykker på knap nr. 1 flyver den ned. uanset hvilken knap man så trykker på skal knap nr. 1 flyve op igen inden den valgte knap flyver ned og det skal så gælde alle knapper.

Håber i Forstår.

/Jacob
Avatar billede anders77 Nybegynder
15. januar 2002 - 11:00 #1
du kan sende den til anders@thingholm.dk, så skal jeg kigge på det.
Avatar billede barklund Nybegynder
15. januar 2002 - 15:54 #2
Først skal alle knapperne laves sættes ind i hver sit movieClip - der er nødvendigt for at kunne scripte til deres position. Disse skal så placeres i _root med fortløbende navne - fx Knap1, Knap2, Knap3, Knap4 og Knap5... Inden i disse på knapperne sætter vi så følgende action:

on (release) {
    _root.script.click(_name);
}

Altså direkte som ovenstående.

Ude i _root laver du et nyt layer. I dette indsætter du et nyt tomt movieClip og kalder det for \"script\" (det navn blev jo brugt på knapperne). På dette skriver du:

onClipEvent (load) {
    selected = 0;
    active = 0;
    frames = 10; //frames til tween
    target_x = 100; // slutposition x
    target_y = 100; // slutposition y
    target_scale = 50; //slut-skalering i procent;
    function click(btn) {
    if (btn ne selected) {
        active = 1;
        if (!selected) {
            frame = frames-1;
            start_x = _root[btn]._x;
            start_y = _root[btn]._y;
            selected = btn;
        } else {
            frame = 0;
            next = btn;
        }
    }
}
onClipEvent(enterFrame) {
    if (active) {
        if (frame < frames) {
            _root[selected]._x = target_x-(target_x-start_x)*frame/frames;
            _root[selected]._y = target_y-(target_y-start_y)*frame/frames;
        } else {
            _root[selected]._x = start_x+(target_x-start_x)*(frame-frames)/frames;
            _root[selected]._y = start_y+(target_y-start_y)*(frame-frames)
/frames;
        }
        frame++;
        if (frame == frames) {
            selected = next;
            start_x = _root[selected].
_x;
            start_y = _root[selected].
_y;
        } else if (frame == 2*frames) {
            active = 0;
        }
    }
}

Det er sådan lidt ud i luften, men prøv det...

/barklund
Avatar billede barklund Nybegynder
15. januar 2002 - 15:59 #3
Der mangler en krøllet slutparentes, \"}\", lige før onClipEvent(enterFrame)...

Linieskifte ved start_x og start_y til sidst skal selvfølgelig fjernes...

/barklund
Avatar billede jacup Nybegynder
18. januar 2002 - 09:56 #4
jeg fandt ud af det på en anden måde men jeg vil gerne give lidt point hvis du gider svar! -->Barklund
Avatar billede barklund Nybegynder
18. januar 2002 - 13:44 #5
...Svar... :^)
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