Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-03-2004, 09:49   #1 (permalink)
Neuer User
 
Benutzerbild von E.d.d.YS
 
Registriert seit: Nov 2002
Beiträge: 106
Question _root.fade("aus","_root.mc",20); ??

Hallo,

in diesem Flashfilm lasse ich über eine Funktion durch drücken eines Buttons ein MC (der MC ist das Fenster) ein und ausbelnden:

Funktion
ActionScript:
  1. // Entschuldigt das Design, aber eigentlich wollte ich gar kein
  2. // Movie aus dem Script machen ;)
  3. // Thread zum Movie:
  4. // [url]http://www.flashhilfe.de/lesen/forumexperten_0_000_0_25746_25746.html[/url]
  5.  
  6. MovieClip.prototype.fade = function(a,mc,g) {
  7.     this[mc].action = a;
  8.     this[mc].geschwindigkeit = g;
  9.     this[mc].onEnterFrame = function() {
  10.         if(this.action == "aus" and this._alpha>0){
  11.             this._alpha -= this.geschwindigkeit;
  12.         }
  13.         if(this.action == "ein" and this._alpha<100){
  14.             this._alpha += this.geschwindigkeit;
  15.         }
  16.     }
  17. }
  18.  
  19.         fade("aus","mc",20);

Der Code für die Schaltflächen sieht dann so aus:
ActionScript:
  1. on(release){
  2.         // 4 ist die Geschwindigkeit des faden
  3.         fade("ein","mc",20); // bzw. "aus" für fadeout
  4.         mc.gotoAndStop(2);
  5.         gotoAndStop(2);
  6.        
  7. }

Nun habe ich im MC selber eine Schaltfläche drinn mit der das MC ausgefadet werden soll. Nur leider klappt es nicht wenn ich diesen COde verwende:

ActionScript:
  1. on(release){
  2.         // 4 ist die Geschwindigkeit des faden
  3.         _root.fade("aus","_root.mc",20);
  4.         }

Habe ich irgendwie die Pfadangaben flasch oder warum funktioniert das X oben rechts im Fenster nicht?
E.d.d.YS ist offline   Mit Zitat antworten
Alt 08-03-2004, 10:02   #2 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
hi,

denke mal, dass der Pfad nicht aufgelöst werden kann ("_root.mc" -> wird in der Funktion zu this["_root.mc"]).

Da du aber die Funktion fade in den Movieclip Prototype schreibst, ist sie in jedem Movieclip verfügbar. Deshalb kannst du sie auch leicht abändern und dann als Methode des Movieclips aufrufen, den du faden möchtest:
ActionScript:
  1. MovieClip.prototype.fade = function(a, g) {
  2.         this.action = a;
  3.         this.geschwindigkeit = g;
  4.         this.onEnterFrame = function() {
  5.                 if(this.action == "aus" and this._alpha>0){
  6.                         this._alpha -= this.geschwindigkeit;
  7.                 }
  8.                 if(this.action == "ein" and this._alpha<100){
  9.                         this._alpha += this.geschwindigkeit;
  10.                 }
  11.         }
  12. }
  13.  
  14. // Code für die Schaltfläche
  15. on(release){
  16.         mc.fade("ein", 20); // bzw. "aus" für fadeout
  17.         mc.gotoAndStop(2);
  18.         gotoAndStop(2);
  19. }
  20. // Code für Schließen-Kreuz
  21. on(release){
  22.         _root.mc.fade("aus", 20);
  23. }
gruß,
roman
romän ist offline   Mit Zitat antworten
Alt 08-03-2004, 11:31   #3 (permalink)
Neuer User
 
Benutzerbild von E.d.d.YS
 
Registriert seit: Nov 2002
Beiträge: 106
Vielen Dank hat super geklappt!

Nur sobald der MC eingefadet ist und ich auf das X klicke, wird er zwar ausgefadet aber wenn man dann auf den Link "TFT Monitor" klickt passiert ja rein gar nichts weil der MC schließlich schon ausgefadet ist.

Kann man das nicht irgendwie mit nur einem Button lösen, der abfragt ob der mc ein oder ausgefader istß?

Also ich bin kein Programmierer aber so in diese Richting?:

on(release){

ActionScript:
  1. if(mc == "ein")
  2.  {mc.fade("aus", 20);
  3. }else{
  4.   mc.fade("ein", 20);
  5. }}

Nur weiß ich nicht wie man das "ein" und das "aus" abfragen kann ?

Geändert von E.d.d.YS (08-03-2004 um 11:32 Uhr)
E.d.d.YS ist offline   Mit Zitat antworten
Alt 08-03-2004, 13:10   #4 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
hi,

vom Gedanken schon nicht schlecht, allerdings musst du musst Variable "action" des mcs abfragen.
Versuch's mal damit:
ActionScript:
  1. on(release){
  2. if(mc.action == "ein"){
  3. mc.fade("aus", 20);
  4. }else{
  5. mc.fade("ein", 20);
  6. }
  7. }
gruß,
roman
romän ist offline   Mit Zitat antworten
Alt 08-03-2004, 13:28   #5 (permalink)
Neuer User
 
Benutzerbild von E.d.d.YS
 
Registriert seit: Nov 2002
Beiträge: 106
Talking

Tatsächlich es funktioniert! Danke nochmal für die Hilfe - habs es jetzt genau wie ich es haben wollte.
E.d.d.YS 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 01:46 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele