Avatar billede peaceout Nybegynder
26. august 2004 - 10:19 Der er 8 kommentarer og
1 løsning

Rotation med ekstra effekt.

Takke være thulstrup fik jeg lavet et flot simpelt rotations funktion. Nu kommer det jeg simpelhen ikke kan finde udad.
I actionscriptet neden under, er der pil_mc og pil_mc2, det jeg gerne vil have at den gør efter følgende er: Når man eks. har trykket på Nord og pil_mc og pil2_mc så vender sig mod syd (-180 grader) så efter nogle få sek så rotater pil2_mc tilbage til nord (180 grader).
Håber at det er forklaret rigtigt.
Avatar billede peaceout Nybegynder
26. august 2004 - 10:20 #1
Koden:

rotateTo = function (d) {
    this.onEnterFrame = function() {
        if (pil_mc._rotation != d) {
            pil2_mc._rotation = pil_mc._rotation += 10;
        } else {
            delete this.onEnterFrame;
        }
    };
};
nord_mc.onRelease = function() {
    rotateTo(180);
};
syd_mc.onRelease = function() {
    rotateTo(0);
};
oest_mc.onRelease = function() {
    rotateTo(-90);
};
vest_mc.onRelease = function() {
    rotateTo(90);
};nordvest_mc.onRelease = function() {
    rotateTo(-130);
};
nordoest_mc.onRelease = function() {
    rotateTo(130);
};
sydoest_mc.onRelease = function() {
    rotateTo(30);
};
sydvest_mc.onRelease = function() {
    rotateTo(-30);
};
Avatar billede barklund Nybegynder
26. august 2004 - 10:36 #2
Say what? Hvad skal den gøre? Altså begge pile drejer hen til retningen og efter lidt tid, drejer den ene tilbage mod nord?
Avatar billede peaceout Nybegynder
26. august 2004 - 10:50 #3
Jep, når man trykker på eks. Vest, så drejer pil_mc og pil2_mc mod Vest, også efter ca. 5 sek, så drejer pil2_mc mod Nord, hvor pil_mc stadig vender imod Vest.
Avatar billede barklund Nybegynder
26. august 2004 - 11:52 #4
Det kan du gøre med setInterval og en ekstra funktion:

function rotateTo (d) {
    onEnterFrame = function() {
        if (pil_mc._rotation != d) {
            pil2_mc._rotation = pil_mc._rotation += 10;
        } else {
            if (d != 0) setInterval(resetPil2, 5000); // 5000 = 5 sekunder
            delete this.onEnterFrame;
        }
    };
};
function resetPil2 () {
    onEnterFrame = function() {
        if (pil2_mc._rotation != 0) {
            pil2_mc._rotation += 10;
        } else {
            delete this.onEnterFrame;
        }
    };
};

--
Morten Barklund
Avatar billede peaceout Nybegynder
26. august 2004 - 12:21 #5
Uhh sweet, rigtig nice, jeg siger mange tak.
Avatar billede barklund Nybegynder
26. august 2004 - 12:42 #6
Wee, det virkede :)
Avatar billede peaceout Nybegynder
26. august 2004 - 12:48 #7
barklund, det virker vist ik helt perfekt. Funktionen virker men, når den reset pil2_mc, så virker pil_mc ikke korrekt, den kan ikke finde udad at dreje de rigtige grader.
Avatar billede barklund Nybegynder
26. august 2004 - 14:03 #8
Måske det er fordi jeg glemte at cleare intervallet:

function rotateTo (d) {
    onEnterFrame = function() {
        if (pil_mc._rotation != d) {
            pil2_mc._rotation = pil_mc._rotation += 10;
        } else {
            if (d != 0) interval = setInterval(resetPil2, 5000); // 5000 = 5 sekunder
            delete this.onEnterFrame;
        }
    };
};
function resetPil2 () {
    clearInterval(interval);
    onEnterFrame = function() {
        if (pil2_mc._rotation != 0) {
            pil2_mc._rotation += 10;
        } else {
            delete this.onEnterFrame;
        }
    };
};
Avatar billede peaceout Nybegynder
26. august 2004 - 14:15 #9
oh yeah!!!, jeg siger endnu en gang rigtig mange tak, men jeg synes at du skal lave et svar i det andet spørgsmål, du fortjener de 60 point.
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