Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-09-2005, 09:57   #1 (permalink)
?™
 
Registriert seit: May 2003
Ort: Flashforum
Beiträge: 396
Smile RGB eines Movieclips per AS ändern.

Hallo!

Es gibt doch in Flash die lustige Funktion, bei den Eigenschaften eines Movieclips per "erweitert" (da wo man auch die Alphawerte verändern kann) die R/g/B Werte eines Movieclips zu verändern.

Meine Frage ist nun, wie man es schaffen kann die RGB-Werte eines Movieclips per Actionscript von 0 auf +100 versändern kann.

Gruß

cypher
=CYPHeR= ist offline   Mit Zitat antworten
Alt 24-09-2005, 11:51   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
hi.

schau dir mal das Color-Objekt an.
die AS-Version des «Erweitert»-Bereichs nennt
sich setTransform (gehört zum Color-Objekt).

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 24-09-2005, 13:39   #3 (permalink)
?™
 
Registriert seit: May 2003
Ort: Flashforum
Beiträge: 396
Ich bin leider nicht ganz so bewandert in AS-Sachen - Deshalb wäre das echt toll, wenn mir das jemand an dem Mini-Beispiel hier erklären könnte:

Es geht eigentlich nur darum diesen Effekt hier per AS zu realisieren.
Angehängte Dateien
Dateityp: zip aufblend.zip (13,2 KB, 3x aufgerufen)
=CYPHeR= ist offline   Mit Zitat antworten
Alt 24-09-2005, 15:45   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hi!
Guck's dir an. Und lass es dir von der Hilfe erklären... ;-)
PHP-Code:
function aufblend(mczeitrotgruenblau) {
    var 
0;
    
mc.onEnterFrame = function() {
        
x<zeit && !this.back x++ : (this.back=true, --x);
        if (
== 0) {
            
delete this.onEnterFrame;
        }
        var 
col = {rb:(rot/zeit)*xgb:(gruen/zeit)*xbb:(blau/zeit)*x};
        new 
Color(this).setTransform(col);
    };
}
//
aufblend(bild_mc1035107234); 
Angehängte Dateien
Dateityp: rar aufblend1.rar (8,3 KB, 9x aufgerufen)
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 24-09-2005, 16:01   #5 (permalink)
?™
 
Registriert seit: May 2003
Ort: Flashforum
Beiträge: 396
Danke dir!!

Das einzigste woran ich jetzt die ganze Zeit drüber grübel ist diese zeile:

x<zeit && !this.back ? x++ : (this.back=true, --x);

was zum Teufel soll das bedeuten? Ich bräuchte im Prinzip nämlich 2 Funktionen (eine zum auf und eine zum abblenden) Scheitere aber daran das ganze in 2 auseinander zu fuddeln.

Geändert von =CYPHeR= (24-09-2005 um 16:05 Uhr)
=CYPHeR= ist offline   Mit Zitat antworten
Alt 24-09-2005, 16:24   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
ActionScript:
  1. // Hö! Das ist der tenäre Konditionaloperator :-)
  2. x<zeit && !this.back ? x++ : (this.back=true, --x);
  3. // ...entspricht dem hier:
  4. if (x<zeit && !this.back) {
  5.     x++;
  6. } else {
  7.     this.back = true;
  8.     x--;
  9. }
Das mit dem back kannst du dir schenken, wenn du Ein- und Ausblenden trennen willst. Habe im Moment keine Zeit, aber wenn du nicht weiterkommst, dann melde dich nochmal...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 24-09-2005, 17:46   #7 (permalink)
?™
 
Registriert seit: May 2003
Ort: Flashforum
Beiträge: 396
Ok ich hab jetzt erstma die aufblend funktion gemacht (also den ablendteil gelöscht)
Hab aber Probleme die Funktion aufzurufen

Im Frame steht jetzt

ActionScript:
  1. function aufblend(mc, zeit, rot, gruen, blau) {
  2.     var x = 0;
  3.     mc.onEnterFrame = function() {
  4.        
  5.         if (x<zeit) {
  6.         x++;}
  7.        
  8.         if (x == 0) {
  9.             delete this.onEnterFrame;
  10.         }
  11.         var col = {rb:(rot/zeit)*x, gb:(gruen/zeit)*x, bb:(blau/zeit)*x};
  12.         new Color(this).setTransform(col);
  13.     };
  14. }

und auf dem Movieclip liegt:
ActionScript:
  1. on (rollOver) {
  2.     aufblend(bild_mc, 10, 35, 107, 234);
  3. }

irgendwie funktioniert der Aufruf aber nicht, obwohl ja die funktion so eigentlich funktioniert.

Das ganze auch nochmal im anhang
Angehängte Dateien
Dateityp: zip aufblend2.zip (9,2 KB, 9x aufgerufen)
=CYPHeR= ist offline   Mit Zitat antworten
Alt 25-09-2005, 12:47   #8 (permalink)
?™
 
Registriert seit: May 2003
Ort: Flashforum
Beiträge: 396
Hm... kann ma da nun jemand weiterhelfen? Irgendwie bekomm ich das wirklich nicht gebacken mit der Funktion.. (siehe oben)
=CYPHeR= ist offline   Mit Zitat antworten
Alt 25-09-2005, 12:53   #9 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Der Aufruf müßte in deinem Falle so lauten:
PHP-Code:
on (rollOver) {
    
_root.aufblend(this1035107234);

__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 25-09-2005, 14:01   #10 (permalink)
?™
 
Registriert seit: May 2003
Ort: Flashforum
Beiträge: 396
Ah gut
So und dann jetzt nur noch eine Frage:

Warum funktioniert die Abblend funktion bei mir nicht:

ActionScript:
  1. function abblend(mc, zeit, rot, gruen, blau) {
  2.     var x = 0;
  3.     mc.onEnterFrame = function() {
  4.        
  5.         if (x<Zeit) {
  6.         x--;}
  7.        
  8.         if (x == 0) {
  9.             delete this.onEnterFrame;
  10.         }
  11.         var col = {rb:(rot/zeit)*x, gb:(gruen/zeit)*x, bb:(blau/zeit)*x};
  12.         new Color(this).setTransform(col);
  13.     };
  14. }
=CYPHeR= ist offline   Mit Zitat antworten
Alt 25-09-2005, 14:09   #11 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Also ich kapier das mit dem x nicht in deiner Funktion.
Du erstellst es und weist im 0 zu.
Dann fragst du ob es kleiner zeit ist, wenn ja wird es um 1 dekrementiert aber das onEnterFrame kann nicht mehr gelöscht werden.

Habe die Funktionen mal so umgeschrieben...
PHP-Code:
function aufblend(mczeitrotgruenblau) {
    var 
0
    
mc.onEnterFrame = function()
    {
        var 
col = { rb: (rot/zeit)*xgb: (gruen/zeit)*xbb: (blau/zeit)*};
        new 
Colorthis ).setTransformcol );
        
        if ( ++
zeit delete this.onEnterFrame;
    };
}

function 
abblend(mczeitrotgruenblau) {
    var 
zeit;
    
mc.onEnterFrame = function()
    {
        var 
col = { rb: (rot/zeit)*xgb: (gruen/zeit)*xbb: (blau/zeit)*};
        new 
Colorthis ).setTransformcol );
        
        if ( --
delete this.onEnterFrame;
    };

__________________
ERROR: Signature is too large

Geändert von rendner[i] (25-09-2005 um 14:23 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 25-09-2005, 17:09   #12 (permalink)
?™
 
Registriert seit: May 2003
Ort: Flashforum
Beiträge: 396
Danke an euch beiden, es funzt!
=CYPHeR= 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 03:19 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele