Avatar billede kasper82 Nybegynder
16. januar 2003 - 22:53 Der er 9 kommentarer og
1 løsning

Fade med actionscript (tricky)

Jeg har i et tidligere spørgsmål fået dette script:
onClipEvent (load) {
    // skift her
    alpha_off = 35;
    alpha_on = 100;
    alpha_steps = 6;

    // lad dette være
    end_alpha = alpha = _alpha = alpha_off;
    step_alpha = (alpha_on-alpha_off)/alpha_steps;
    idle = 1;
    over = -1;
    sign = step_alpha < 0 ? -1 : 1;
}
onClipEvent (enterFrame) {
    if (idle) return;

    _alpha = (alpha+=over*step_alpha);

    if (sign*_alpha < sign*alpha_off || sign*_alpha > sign*alpha_on)
        idle = 1;
}
onClipEvent(mouseMove) {
    if (over == -1 && this.hitTest(_root._xmouse,_root._ymouse,1)) {
        over = 1;
        idle = 0;
    } else if (over == 1 && !this.hitTest(_root._xmouse,_root._ymouse,1)) {
        over = -1;
        idle = 0;
    }
}


Mit "problem" er følgende:
Scriptet virker sådan set fint.. HVIS man kun bruger det på et movieclip.. hvis man eks. skal bruge det på flere (i en menu f.eks), får man tit fejl. (flere af movieclippene vil ikke fade.)

Det smarte ville så være:
1) At lave det på en måde, så man ikke skal smide den lange kode på hver eneste movieclip.. men lave det på en måde så, man på hver mc, kunne kalde scriptet fra et sted. så man kun havde scriptet et sted. (nemmere at rette, osv).

2) Lave det på en måde så det er compt. med flere movieclips.
Avatar billede kasper82 Nybegynder
16. januar 2003 - 22:55 #1
Punk "2" er klart det vigtigste i dette sprgs. :)
Avatar billede mat Nybegynder
16. januar 2003 - 23:17 #2
Lavet mondohurtigt:

i frame 1:

MovieClip.prototype.initMe = function() {
    avar = 5;
    min = 25;
    max = 100;
}
MovieClip.prototype.fadeMe = function() {
    if (this.f && this._alpha >= min) {
        this._alpha -= avar;
    }
    if (!this.f && this._alpha <= max) {
        this._alpha += avar;
    }
}


på dine movieclips:

onClipEvent (load) {
    initMe();
}
on (rollOver) {
    f = 1;
}
onClipEvent (enterFrame) {
    fadeMe();
}
on (rollOut) {
    f = 0;
}
Avatar billede kasper82 Nybegynder
16. januar 2003 - 23:27 #3
og det vil fungere på flere movieclips.. uden at skabe ravage ?
Avatar billede mat Nybegynder
17. januar 2003 - 15:49 #4
ja det skulle meget gerne virke fint, men den skal vist lige vendes om:

MovieClip.prototype.initMe = function() {
    avar = 5;
    min = 25;
    max = 100;
    this._alpha = min;
}
MovieClip.prototype.fadeMe = function() {
    if (this.f && this._alpha <= max) {
        this._alpha += avar;
    }
    if (!this.f && this._alpha >= min) {
        this._alpha -= avar;
    }
}

På movieclipsne er det stadig bare som ovenstående.
Avatar billede kasper82 Nybegynder
17. januar 2003 - 15:50 #5
Fint .. mange tak.. smider du et svar ?
Avatar billede mat Nybegynder
17. januar 2003 - 15:51 #6
joda, men du vil ikke teste først? :)
Avatar billede kasper82 Nybegynder
17. januar 2003 - 15:52 #7
jow selvf . :) .. jeg vender lige tilbage
Avatar billede barklund Nybegynder
20. juni 2003 - 15:31 #8
Action Mat - Den stærkeste superhelt!
Avatar billede mat Nybegynder
20. juni 2003 - 16:37 #9
ja mindst....  :S
Avatar billede barklund Nybegynder
20. juni 2003 - 16:56 #10
Hov, det var til overskriften her: http://www.eksperten.dk/spm/367207
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

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