Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-07-2005, 11:15   #1 (permalink)
Neuer User
 
Benutzerbild von -==AIRWOLF==-
 
Registriert seit: May 2004
Beiträge: 97
"Blinken" über setRGB...

Hallo,

ich möchte einen MovieClip zum blinken bringen. Er soll hintereinander in zb. rot, weiss, rot, weiss, usw. blinken.
Ich habe es jetzt so realisiert, dass ich für jede Farbe einen Frame eingefügt habe, welches über einen Interval von 200ms von einem Frame zum nächsten springt. Dies hat bei mehreren MovieClips allerdings den Nachteil, das es unendlich viele Frames geben müsste. Die Farbe wird über eine setRGB-Funktion(welche ich nicht wirklich verstehe) angepasst. Gibt es für dieses blinken evt. eine "elegantere" Lösung bzw. angehensweise?
__________________
Gruß -==AIRWOLF==-
-==AIRWOLF==- ist offline   Mit Zitat antworten
Alt 22-07-2005, 11:40   #2 (permalink)
lernwillig
 
Benutzerbild von 23012
 
Registriert seit: Jan 2002
Ort: auf dem Land
Beiträge: 1.327
Hallo,
bin mir nicht sicher, ob ich das jetzt richtig verstehe...
Warum gehst Du nicht vor und zurück - dann braucht es nur 2 Bilder.
Oder ist es nicht so einfach?
Gruss
23012
__________________
[TUTORIAL] Nahtlose Muster erstellen in Photoshop
23012 ist offline   Mit Zitat antworten
Alt 22-07-2005, 12:58   #3 (permalink)
Neuer User
 
Benutzerbild von -==AIRWOLF==-
 
Registriert seit: May 2004
Beiträge: 97
Deine Idee ist mir noch garnicht in den Sinn gekommen.
Aber was mache ich, wenn ich es jeweils nur 5x Weiss und Rot "blinken" lassen möchte? Wie kann ich dieses Bild vor- und zurück springen mitzählen?
__________________
Gruß -==AIRWOLF==-
-==AIRWOLF==- ist offline   Mit Zitat antworten
Alt 22-07-2005, 13:01   #4 (permalink)
Freizeitflasher
 
Benutzerbild von Alphanimal
 
Registriert seit: Jun 2004
Ort: Niederösterreich
Beiträge: 615
hier eine Methode:
ActionScript:
  1. MovieClip.prototype.startBlink = function(interval, col1, col2){
  2.  this.blink = new Color(this);
  3.  this.blink.setRGB(col1);
  4.  this.blinkStep = function(mc){
  5.   if(mc.blink.getRGB()==col1) mc.blink.setRGB(col2);
  6.   else mc.blink.setRGB(col1);
  7.  
  8.  }
  9.  this.blinkInterval = setInterval(this.blinkStep, interval, this);
  10. }
  11. //Aufruf: hier beginnt der MC "clip" zu blinken (Rot/Weiss, alle 200ms)
  12. clip.startBlink(200, 0xff0000, 0xffffff);

mfg
__________________
Some Flash Worx
Alphanimal ist offline   Mit Zitat antworten
Alt 22-07-2005, 13:11   #5 (permalink)
Freizeitflasher
 
Benutzerbild von Alphanimal
 
Registriert seit: Jun 2004
Ort: Niederösterreich
Beiträge: 615
Zitat:
Zitat von -==AIRWOLF==-
Deine Idee ist mir noch garnicht in den Sinn gekommen.
Aber was mache ich, wenn ich es jeweils nur 5x Weiss und Rot "blinken" lassen möchte? Wie kann ich dieses Bild vor- und zurück springen mitzählen?
ActionScript:
  1. MovieClip.prototype.startBlink = function(interval, col1, col2, limit){
  2.  this.blinkCounter = (limit==undefined)?0:limit;
  3.  this.blink = new Color(this);
  4.  this.blink.setRGB(col1);
  5.  this.blinkStep = function(mc){
  6.   if(mc.blink.getRGB()==col1) mc.blink.setRGB(col2);
  7.   else mc.blink.setRGB(col1);
  8.   if(mc.blinkCounter--==1)mc.stopBlink();
  9.  }
  10.  this.blinkInterval = setInterval(this.blinkStep, interval, this);
  11. }
  12. MovieClip.prototype.stopBlink = function(){
  13.  delete this.blink;
  14.  clearInterval(this.blinkInterval);
  15. }
  16. //Der Blinker hört nach 5 mal Farbwechsel auf.
  17. clip.startBlink(200, 0xff0000, 0x00ffff, 5);
__________________
Some Flash Worx
Alphanimal ist offline   Mit Zitat antworten
Alt 22-07-2005, 13:17   #6 (permalink)
lernwillig
 
Benutzerbild von 23012
 
Registriert seit: Jan 2002
Ort: auf dem Land
Beiträge: 1.327
Hi,
also ich würds mit einer Variable machen die mitzählt. Hab aber
keinen fertigen Code parat.
Alphanimal hat Dir ja schon ne Lösung geschickt, damit klappts bestimmt.
Gruss
23012
__________________
[TUTORIAL] Nahtlose Muster erstellen in Photoshop
23012 ist offline   Mit Zitat antworten
Alt 22-07-2005, 13:49   #7 (permalink)
Neuer User
 
Benutzerbild von -==AIRWOLF==-
 
Registriert seit: May 2004
Beiträge: 97
Natürlich klappt es mit dem Script von Alphanimal, unglaublich. Unglaublich ist aber auch, dass ich das Prototype-Script nicht wirklich verstehe. Da werde ich wohl noch die meiste Arbeit haben .

Jetzt bin ich aber nochmal Neugierig und würde gerne wissen, ob du dir dieses Script mal komplett selbständig ausgedacht hast oder es dir irgendwie zusammen "gepuzzelt" hast?
__________________
Gruß -==AIRWOLF==-
-==AIRWOLF==- ist offline   Mit Zitat antworten
Alt 22-07-2005, 15:43   #8 (permalink)
Freizeitflasher
 
Benutzerbild von Alphanimal
 
Registriert seit: Jun 2004
Ort: Niederösterreich
Beiträge: 615
hab mir das selbst ausgeacht... is ja nocht so kompliziert!

ich erklärs mal
1. ich mach einen Prototyp damit man JEDEN MovieClip blinken lassen kann.
ActionScript:
  1. MovieClip.prototype.startBlink = function(interval, col1, col2)
Als parameter farben und intervall.

2. ich erstelle das Color Objekt damit ich die Farbe auch steuern kann. (Das objekt ist in dem MC, also "this")
ActionScript:
  1. this.blinkCol = new Color(this);

3. ausserdem erstelle ich das Intervall auch in dem MC, dieses ruft dann ständig die blinkStep funktion auf.
ActionScript:
  1. this.blinkInterval = setInterval(this.blinkStep, interval);

4. die blinkStep funktion, auch im MC, schaltet immer die farbe um.
Es greift auf das Color Objekt zu, sieht nach welche Farbe gerade gesetzt ist, und setzt genau die andere Farbe.

Das mit dem limit ist nur eine weitere var, die der MC bekomt.
jeden blinkStep wird sie um 1 verringert, wenn sie nur mehr 1 ist, wird das interval gelöscht. (wieder über eine prototype function stopBlink())

alles klar?
__________________
Some Flash Worx
Alphanimal ist offline   Mit Zitat antworten
Alt 22-07-2005, 23:59   #9 (permalink)
Neuer User
 
Benutzerbild von -==AIRWOLF==-
 
Registriert seit: May 2004
Beiträge: 97
Als erstes wollte ich mich natürlich erstmal für eure Hilfe bedanken. Nicht das ich es nacher noch vergesse.

Nach intensiven Studium deines Codes, denke ich den Ablauf der einzelnen Funktionen verstanden zu haben. Da ich mich doch oft sehr dilettantisach im Umgang mit Actionscript anstelle, bin ich immer versucht die einzelnen Codezeilen auch nach vollziehen zu können.
Eine Sache ist mir allerdings doch nicht ganz klar:
ActionScript:
  1. this.blinkStep = function(mc)
Warum wird bei dieser Funtion der Parameter "mc" mit übergeben? Den im nachfolgenden Code übergebe ich doch den direkten Pfad zum MovieClip.
__________________
Gruß -==AIRWOLF==-
-==AIRWOLF==- ist offline   Mit Zitat antworten
Alt 24-07-2005, 11:20   #10 (permalink)
Freizeitflasher
 
Benutzerbild von Alphanimal
 
Registriert seit: Jun 2004
Ort: Niederösterreich
Beiträge: 615
es hat mit this. nicht funktioniert,
in der funktion gilt this nicht als der MovieClip...
also hab ich einfach den MC übergeben dass ich auf ihn zugreifen kann.
__________________
Some Flash Worx
Alphanimal ist offline   Mit Zitat antworten
Alt 25-07-2005, 07:53   #11 (permalink)
0_checka
 
Benutzerbild von nettl
 
Registriert seit: Jul 2005
Ort: DRESDEN_CITY
Beiträge: 70
ich hab das auch mal ausprobiert, aber bei mir blinkt nix!
ich habe ein movieclip der prototype heißt. aber trotzdem funx noch nichts. hab ich was vergessen???
__________________
BIN AUCH NUR NE FRAU...
THX --- nettl
nettl ist offline   Mit Zitat antworten
Alt 25-07-2005, 08:24   #12 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Hi!

Du brauchst keinen Movieclip der prototype heisst! Mit Hilfe von prototype definierst du eigene Methoden für die jeweilige Klasse (Hier die Movieclip-Klasse). Aufrufen tust du die, indem du folgendes schreibst:

ActionScript:
  1. dein_MC.startBlink(500, 0xff0000, 0x00ffff, 5)
  2. //dein_MC durch den Namen deines MovieClips ersetzen!
  3.  
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 25-07-2005, 08:33   #13 (permalink)
0_checka
 
Benutzerbild von nettl
 
Registriert seit: Jul 2005
Ort: DRESDEN_CITY
Beiträge: 70
na das is ja einfach
das hab ich ja gar net gesehen, dass das blos da unten stand
naja kenn mich mit den klassen auch noch net so gut aus

Danke dir, nu funx
__________________
BIN AUCH NUR NE FRAU...
THX --- nettl

Geändert von nettl (25-07-2005 um 08:37 Uhr)
nettl ist offline   Mit Zitat antworten
Alt 25-07-2005, 22:06   #14 (permalink)
Neuer User
 
Benutzerbild von -==AIRWOLF==-
 
Registriert seit: May 2004
Beiträge: 97
@Alphanimal

Vielen Dank nochmal für deine Erläuterung, jetzt sind alle Unklarheiten aus der Welt.
__________________
Gruß -==AIRWOLF==-
-==AIRWOLF==- 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 21:24 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele