Flashhilfe.de - Flash Community

Prototype: MovieClip.colorFade [Flash 8]

 


AntwortenRegistrieren Seite1  

ToBSn#1
Benutzerbild von ToBSn
Beiträge: 299
Wohnort: Ingolstadt a. d. schönen Donau
Registriert: May 2003

26.01.2004, 17:37

MCs stufenloser Colorfade

Prototype:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
MovieClip.prototype.colorFade = function(newHEX, speed) {
    var myColor = new Color(this);
    var cRGB = myColor.getRGB();
    var cHEX = cRGB.toString(16);
    this.onEnterFrame = function() {
        if (cHEX<>newHEX) {
            var cHEX_r = parseInt(cHEX.substring(0, 2), 16);
            var newHEX_r = parseInt(newHEX.substring(0, 2), 16);
            var cHEX_g = parseInt(cHEX.substring(2, 4), 16);
            var newHEX_g = parseInt(newHEX.substring(2, 4), 16);
            var cHEX_b = parseInt(cHEX.substring(4, 6), 16);
            var newHEX_b = parseInt(newHEX.substring(4, 6), 16);
            if (cHEX_r<>newHEX_r) {
                var r_diff = Math.round((newHEX_r-cHEX_r)/speed);
                if (Math.abs(r_diff)<1) {
                    cHEX_r = newHEX_r;
                } else {
                    cHEX_r += r_diff;
                }
            }
            if (cHEX_g<>newHEX_g) {
                var g_diff = Math.round((newHEX_g-cHEX_g)/speed);
                if (Math.abs(g_diff)<1) {
                    cHEX_g = newHEX_g;
                } else {
                    cHEX_g += g_diff;
                }
            }
            if (cHEX_b<>newHEX_b) {
                var b_diff = Math.round((newHEX_b-cHEX_b)/speed);
                if (Math.abs(b_diff)<1) {
                    cHEX_b = newHEX_b;
                } else {
                    cHEX_b += b_diff;
                }
            }
            cHEX_r = cHEX_r.toString(16);
            cHEX_g = cHEX_g.toString(16);
            cHEX_b = cHEX_b.toString(16);
            while (cHEX_r.length<2) {
                cHEX_r = "0"+cHEX_r;
            }
            while (cHEX_g.length<2) {
                cHEX_g = "0"+cHEX_g;
            }
            while (cHEX_b.length<2) {
                cHEX_b = "0"+cHEX_b;
            }
            cHEX = cHEX_r+cHEX_g+cHEX_b;
            myColor.setRGB(parseInt(cHEX, 16));
        } else {
            delete this.onEnterFrame;
        }
    };
};


Beispiel Aufruf:
ActionScript:
1
2
3
4
// mc.colorFade("farbe", fadegeschwindigkeit [je höher um länger der fade])
mc1.colorFade("00FF00", 5);
mc2.colorFade("FF0000", 10);
//usw.

Gruss ToBSn
Schlagwörter: color, prototype
Werbung
Beiträge: 0
Registriert: Feb 2016


Norbert#2
Benutzerbild von Norbert
Beiträge: 27
Wohnort: WI
Registriert: Feb 2003

18.02.2004, 10:42

Ist zwar nicht das Forum, aber ich habe einen Bug in diesem Script festgestellt... wahrscheinlich nicht im Script aber im FlashPlayer 7 auf dem lieben MAC (OS 9.2). Leider weiß ich nicht genau wo der Fehler liegt, da Flash MX 2004 leider nur für MAC OSX aufwärts zur Verfügung steht. Aber irgendwie scheint der die Hex-Werte falsch zu parsen...

wer es sehen will:
www.norbertgilles.com/colorFade/colorFade.swf

Gibt es irgendeinen Tip, wie man das umgehen kann?

ToBSn#3
Benutzerbild von ToBSn
Beiträge: 299
Wohnort: Ingolstadt a. d. schönen Donau
Registriert: May 2003

Themenautor/in

23.02.2004, 16:46

um die mcs von der tatsächlichen farbe ab zu colorzufaden:

entweder einen farbwert dynamisch mit setRGB zuweisen,
oder fest mit den instanzeigenschaften einfärben.

leider funktioniert getRGB sonst beim ersten aufruf nicht.

gruss ToBSn

Gruss ToBSn
ToBSn#4
Benutzerbild von ToBSn
Beiträge: 299
Wohnort: Ingolstadt a. d. schönen Donau
Registriert: May 2003

Themenautor/in

03.03.2004, 11:29

hier nochmal ein kleines update:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
MovieClip.prototype.colorFade = function(newHEX, speed) {
   var myColor = new Color(this);
   var cHEX = myColor.getRGB().toString(16);
   cHEX = cHEX.toLowerCase();
   newHEX = newHEX.toLowerCase();
   this.onEnterFrame = function() {
      if (cHEX<>newHEX) {
         var cHEX_r = parseInt(cHEX.substring(0, 2), 16);
         var newHEX_r = parseInt(newHEX.substring(0, 2), 16);
         var cHEX_g = parseInt(cHEX.substring(2, 4), 16);
         var newHEX_g = parseInt(newHEX.substring(2, 4), 16);
         var cHEX_b = parseInt(cHEX.substring(4, 6), 16);
         var newHEX_b = parseInt(newHEX.substring(4, 6), 16);
         if (cHEX_r<>newHEX_r) {
            var r_diff = Math.round((newHEX_r-cHEX_r)/speed);
            if (Math.abs(r_diff)<1) {
               cHEX_r = newHEX_r;
            } else {
               cHEX_r += r_diff;
            }
         }
         if (cHEX_g<>newHEX_g) {
            var g_diff = Math.round((newHEX_g-cHEX_g)/speed);
            if (Math.abs(g_diff)<1) {
               cHEX_g = newHEX_g;
            } else {
               cHEX_g += g_diff;
            }
         }
         if (cHEX_b<>newHEX_b) {
            var b_diff = Math.round((newHEX_b-cHEX_b)/speed);
            if (Math.abs(b_diff)<1) {
               cHEX_b = newHEX_b;
            } else {
               cHEX_b += b_diff;
            }
         }
         cHEX_r = cHEX_r.toString(16);
         cHEX_g = cHEX_g.toString(16);
         cHEX_b = cHEX_b.toString(16);
         while (cHEX_r.length<2) {
            cHEX_r = "0"+cHEX_r;
         }
         while (cHEX_g.length<2) {
            cHEX_g = "0"+cHEX_g;
         }
         while (cHEX_b.length<2) {
            cHEX_b = "0"+cHEX_b;
         }
         cHEX = cHEX_r+cHEX_g+cHEX_b;
         myColor.setRGB(parseInt(cHEX, 16));
      } else {
         delete this.onEnterFrame;
         this.afterFade();
      }
   };
};
/****** Beispiel Aufruf: ******/
FarbeVorFade = new Color(mc1);
FarbeVorFade.setRGB(0xAAFFCC);
// mc.colorFade("farbe", fadegeschwindigkeit[je höher um länger der fade])
mc1.colorFade("451154", 5);
mc1.afterFade = function() {
   trace("FERTIG");
};




Gruss ToBSn
Werbung
Beiträge: 0
Registriert: Feb 2016



AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de