Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-05-2005, 12:32   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2004
Beiträge: 41
helligkeit per AS zu langsam?

Ich habe versucht ein Script hier aus dem Forum für meine Karte zu verwenden. Ich habe die Karte unten angehängt. Leider funktioniert es nicht.
Es verhält sich wie, bei Google Maps, einige Gebiete verschwinden bei MouseOver. Grund, anders als über Zeitleiste, kann ich über Script die Funktion nicht abbrechen.

Es soll folgendes passieren. Wenn mein mit dem Mauszeiger über ein Gebiet geht, soll die Fläche heller werden, wenn man das Gebiet verlässt wieder dunkler. Allerdings wird es immer heller, aber nur selten dunkler.


ActionScript:
  1. MovieClip.prototype.addProperty("_brightness",function(){
  2.         var t = new Color(this).getTransform();
  3.         var p = 0;
  4.         if(t.rb > 0 && t.gb > 0 && t.bb > 0){
  5.                 p = (((t.rb+t.gb+t.bb)/3*100/(0xff))+100-((t.ra+t.ga+t.ba)/3))/2;
  6.         } else if(t.ra < 100 && t.ga < 100 && t.ba < 100){
  7.                 p = (t.ra+t.ga+t.ba-300)/3;
  8.         }
  9.         return Math.round(p);
  10. },function(v){
  11.         var a = (v>0)?(100-v):(100+v);
  12.         var b = (v>0)?((0xff)*v/100):(0);
  13.         new Color(this).setTransform({ra:a, rb:b, ga:a, gb:b, ba:a, bb:b});
  14. });
  15.  
  16.  
  17. function fHelligkeit(vMC, vSteps, vBrightness) {
  18.         vMC.brightnessSteps = vSteps;
  19.         vMC.brightnessAdd = (vBrightness/vSteps);
  20.         vMC.onEnterFrame = function() {
  21.                 if (this.brightnessSteps--) {
  22.                         this._brightness += vMC.brightnessAdd;
  23.                 } else {
  24.                         delete this.onEnterFrame;
  25.                 }
  26.         };
  27. }
  28.  
  29.  
  30. for(i=1;i<=6;i++){
  31.     _root.karte["region"+i].id = i;
  32.    
  33.     _root.karte["region"+i].onRollOver = function() {
  34.         fHelligkeit(_root.karte["region"+this.id], 4, 50);
  35.         //_root.karte["region"+this.id]._brightness=50;
  36.     }
  37.    
  38.     _root.karte["region"+i].onRollOut = function() {
  39.         fHelligkeit(_root.karte["region"+this.id], 4, 0);
  40.         //_root.karte["region"+this.id]._brightness=0;
  41.     }
  42. }
Angehängte Dateien
Dateityp: zip test3.zip (13,1 KB, 9x aufgerufen)
Newsdesigner ist offline   Mit Zitat antworten
Alt 09-05-2005, 18:23   #2 (permalink)
IQ: 36,8
 
Registriert seit: Apr 2005
Beiträge: 76
Habe gerade nur kurz Zeit. Aber mach das doch über ein alpha-tween. Irgendetwas in der Richtung.

ActionScript:
  1. this.td._alpha = 60;
  2. this.td.onRollOver = function() {
  3.     var mc = this._parent.td;
  4.     this.onEnterFrame = function() {
  5.         mc._alpha<100 ? mc._alpha += 5 : (mc._alpha=100, delete this.onEnterFrame);
  6.     };
  7. };
  8. this.td.onRollOut = function() {
  9.     var mc = this._parent.td;
  10.     this.onEnterFrame = function() {
  11.         mc._alpha>60 ? mc._alpha -= 5 : (mc._alpha=0, delete this.onEnterFrame);
  12.     };
  13. };
hannabi ist offline   Mit Zitat antworten
Alt 09-05-2005, 19:05   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2004
Beiträge: 41
Würde ich machen, aber ich will sowohl in den positiven, als auch in den negativen Helligkeitsbereich rein und das geht nicht mit _alpha. Ich will weiße Schrift in Grau einfärben.
Newsdesigner ist offline   Mit Zitat antworten
Alt 09-05-2005, 19:15   #4 (permalink)
IQ: 36,8
 
Registriert seit: Apr 2005
Beiträge: 76
Was ist denn ein negativer und was ein positiver Helligkeitsbereich?

Um weiße in graue Schrift zu tweenen, musst du doch einfach nur _alpha durch textColor ersetzen und das AS entsprechend anpassen, oder nicht?
hannabi ist offline   Mit Zitat antworten
Alt 09-05-2005, 22:36   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2004
Beiträge: 41
Bei Alpha kannst Du den Wert nur von 0 bis 100 verändern, bei Helligkeit geht es von +100 über 0 bis -100. Auch das obere Script unterstützt negative Werte.
Newsdesigner ist offline   Mit Zitat antworten
Alt 09-05-2005, 23:14   #6 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
Eine Möglichkeit wäre die Änderung folgender Funktion
ActionScript:
  1. function fHelligkeit(vMC, vSteps, vBrightness) {
  2.     vMC.brightnessSteps = vSteps;
  3.     vMC.brightness = vBrightness;
  4.     vMC.onEnterFrame = function() {
  5.         if (Math.abs(this.brightness-this._brightness)>2) { //2 = "Toleranzwert"
  6.             this._brightness += (this.brightness-this._brightness)/this.brightnessSteps;
  7.         }else{
  8.             delete this.onEnterFrame
  9.         }
  10.     };
  11. }
Gruß
Rena
__________________
www.rena-hermann.de

The angels have the phone box
rena ist offline   Mit Zitat antworten
Alt 09-05-2005, 23:23   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2004
Beiträge: 41
Ich weiß zwar noch nicht warum, aber es funktioniert. Viele Dank!
Ich werde gleich die Scripte vergleichen.

Danke!!!
Newsdesigner ist offline   Mit Zitat antworten
Alt 25-07-2006, 17:49   #8 (permalink)
Neuer User
 
Registriert seit: Jun 2004
Beiträge: 41
Ich habe nach sehr langer Zeit mal wieder eine Frage. Ich möchte eine Elemente mit einer Farbe versehen und dann diese fHelligkeit Funktion anwenden. Irgendwie holt sich die Funktion die urspründliche Farbe wieder.
liegt es an der Variable 't' oder was kann ich gegen sie machen? Kann ich diese irgendwie fest vergeben?

Code:
for (i=1; i<=4; i++) {
	var farbe_color:Color = new Color(_root["quadrat"+i]);
	farbe_color.setRGB(0xFF0000);
}

var Timeline = this;

MovieClip.prototype.addProperty("_brightness",function(){
        var t = new Color(this).getTransform();
        var p = 0;
        if(t.rb > 0 && t.gb > 0 && t.bb > 0){
                p = (((t.rb+t.gb+t.bb)/3*100/(0xff))+100-((t.ra+t.ga+t.ba)/3))/2;
        } else if(t.ra < 100 && t.ga < 100 && t.ba < 100){
                p = (t.ra+t.ga+t.ba-300)/3;
        }
        return Math.round(p);
},function(v){
        var a = (v>0)?(100-v):(100+v);
        var b = (v>0)?((0xff)*v/100):(0);
        new Color(this).setTransform({ra:a, rb:b, ga:a, gb:b, ba:a, bb:b});
});

function fHelligkeit(vMC, vSteps, vBrightness) {
        vMC.brightnessSteps = vSteps;
        vMC.brightness = vBrightness;
        vMC.onEnterFrame = function() {
                if (Math.abs(this.brightness-this._brightness)>2) { //2 = "Toleranzwert"
                        this._brightness += (this.brightness-this._brightness)/this.brightnessSteps;
                }else{
                        delete this.onEnterFrame
                }
        };
}

for (i=1; i<=4; i++) {
	
	_root["quadrat"+i].id = i;
	
	//var farbe_color:Color = new Color(_root["bundesland"+i]);
	//farbe_color.setRGB(0xFF0000);

	_root["quadrat"+i].onRollOver = function() { 
		fHelligkeit(_root["quadrat"+this.id], 3, 60);
	}

	_root["quadrat"+i].onRollOut = function() { 
		fHelligkeit(_root["quadrat"+this.id], 3, 0);
	}
}
Angehängte Dateien
Dateityp: zip helligkeitundfarbe.zip (7,3 KB, 9x aufgerufen)
Newsdesigner ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 15:04 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele