• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Stuff

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-11-2003, 02:41   #1 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.596
[Stuff] Release-Status für Buttons

So, nachdem ja in letzter Zeit wieder vermehrt Anfragen zum Thema "Release-Status bei Buttons"/"Overstatus behalten" und so kamen, hier mal ein kleiner Beitrag zu diesem Thema (hab in der Tut-Sektion nicht wirklich was dazu gefunden...). Erweiterungen/Verbesserungsvorschläge jederzeit gerne.

Ziel:
Ziel soll es sein, eine Reihe von Navigationselementen - nennen wir sie "Buttons" - mit einer folgender Interaktivität zu versehen:
Null-Zustand: Die Maus befindet sich außerhalb des Buttons und der Button wurde nicht angeklickt
Over-Status: Die Maus befindet sich über dem Button, der Button ändert sein Aussehen
Release-Status: Der Button wurde angeklickt, verändert sein Aussehen und behält dieses bei, nachdem die
Maus ihn verlassen hat. Er soll bis zu dem Zeitpunkt, wenn ein anderer Button angeklickt wurde, kein Button mehr sein (d.h. er reagiert nicht auf Mouseover und Klick, kein Hand-Cursor).

Vorbemerkung:
Ich benutze bewusst keine dynamisch generierten/duplizierten Objekte, um den Ball (für non-AS-Professionals) einigermaßen flach zu halten.
Dieses Tutorial ist für Flash MX gedacht, die Methodik funktioniert (leicht bis mittel) abgewandelt aber auch in Flash 5. Anfragen hierzu bitte gesondert an mich.

"Materialbedarf":
Für das Beispiel brauchen wir 5 Movieclips (keine Buttons – mit denen wird’s nix...). Der Einfachheit halber nehmen wir fünf rote Rechtecke, der Over-Zustand soll blau, der Release Zustand grün sein. Also flugs einen MC mit diesen drei Frames und jeweils darin befindlichen Stops erstellt, und diesen viermal auf der Bühne dupliziert. Instanznamen vergeben: mc1 bis mc5 (was sonst...)

Prinzip:
Der Button-MC, der gerade geklickt wurde, meldet sich in einer "zentralen Verwaltungsinstanz" an, führt seine Navigations-Aktion aus, geht in den Release-Status und reagiert nicht mehr auf sämtliche Mausaktionen. Wird ein anderer Button-MC geklickt, schmeisst dieser den vorigen bei der Verwaltung raus und setzt sich selbst rein. Der zuvor angeklickte Button wird wieder "normal", reagiert wieder auf Mausaktionen usw. Diese Verwaltungs-Funktion übernimmt eine schlichte Variable, die ich "clicked" nenne. Here we go...

ActionScript:
  1. //frame 1 auf _root
  2. var clicked;
  3. //
  4. for(var i = 1;i <= 5;i++) {
  5. this["mc"+i ].onRollOver = function() {
  6. if(this != _root.clicked) {
  7. this.gotoAndStop(2);
  8. }
  9. };
  10. this["mc"+i].onRollOut = this["mc"+i].onReleaseOutside = function() {
  11. if(this != _root.clicked) {
  12. this.gotoAndStop(1);
  13. }
  14. };
  15. this["mc"+i].onRelease = function() {
  16. if(this != _root.clicked) {
  17. //hier die Navigations-Aktion
  18. this.gotoAndStop(3);
  19. _root.clicked.gotoAndStop(1);
  20. _root.clicked.useHandCursor = true;
  21. _root.clicked = this;
  22. this.useHandCursor = false;
  23. }
  24. };
  25. }

Gruß,
Tom
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)

Geändert von sonar (18-05-2009 um 22:48 Uhr)
sonar ist gerade online   Mit Zitat antworten
Alt 22-02-2004, 09:34   #2 (permalink)
möchty
 
Registriert seit: Sep 2003
Ort: NA (Hessen)
Beiträge: 169
wo muss das untere script denn hin? auch ins erste frame von root oder in jeden button?
wenn ich das in den button packe, sagt er, dass das for noch in ein on event rein muss..
und auf der root leiste funzt das irgendwie nicht.. hm ??
abcde12345 ist offline   Mit Zitat antworten
Alt 22-02-2004, 12:18   #3 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.596
Das Skript gehört in ein frame auf der Zeitleiste, in der die Button-MCs leben. Ich häng dir mal ein Beispiel an.
Angehängte Dateien
Dateityp: zip release_status.fla.zip (2,6 KB, 1455x aufgerufen)
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist gerade online   Mit Zitat antworten
Alt 22-02-2004, 15:14   #4 (permalink)
möchty
 
Registriert seit: Sep 2003
Ort: NA (Hessen)
Beiträge: 169
aaah, gepeilt
hey danke es funzt
abcde12345 ist offline   Mit Zitat antworten
Alt 14-03-2004, 09:59   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 1.244
hi sonar,

nicht schlecht. Habe es bis heut immer mit einer Hilfsvari
gemacht. Dein Weg hier ist aber eleganter.

Hier noch ein Vorschlag mit directer Farbzuweisung:

ActionScript:
  1. //frame 1 auf _root
  2. var clicked;
  3. //
  4. for (var i = 1; i <= 4; i++) {
  5.     this["mc" + i].onRollOver = function () {
  6.         if (this != _root.clicked) {
  7.             (new Color (this)).setRGB (0xffffff);
  8.         }
  9.     };
  10.     this["mc" + i].onRollOut = this["mc" + i].onReleaseOutside = function () {
  11.         if (this != _root.clicked) {
  12.             (new Color (this)).setRGB (0x000000);
  13.         }
  14.     };
  15.     this["mc" + i].onRelease = function () {
  16.         if (this != _root.clicked) {
  17.             (new Color (this)).setRGB (0x000fff);
  18.             (new Color (_root.clicked)).setRGB (0x000000);
  19.             _root.clicked.useHandCursor = true;
  20.             _root.clicked = this;
  21.             this.useHandCursor = false;
  22.         }
  23.     };
  24. }
__________________
Mfg aus Brandenburg.

harego

Spiel

Zur Page
harego ist offline   Mit Zitat antworten
Alt 02-08-2004, 15:55   #6 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 593
ActionScript:
  1. [font=Courier New][color=#007700]var clicked;
  2. //
  3. for (var i = 1; i<=5; i++) {
  4.  this["mc"+i].onRollOver = function() {
  5.   if (this != _root.clicked) {
  6.    this.gotoAndPlay(2);
  7.   }
  8.  };
  9.  this["mc"+i].onRollOut = this["mc"+i].onReleaseOutside=function () {
  10.   if (this != _root.clicked) {
  11.    this.gotoAndPlay(11);
  12.   }
  13.  };
  14.  this["mc"+i].onRelease = function() {
  15.   if (this != _root.clicked) {
  16.    // hier die Navigations-Aktion
  17.    this.onEnterFrame = function() {
  18.     if (this._currentframe == 10) {
  19.      this.stop();
  20.      delete this.onEnterFrame;
  21.     }
  22.    };
  23.    _root.clicked.gotoAndPlay(11);
  24.    _root.clicked.useHandCursor = true;
  25.    _root.clicked = this;
  26.    this.useHandCursor = false;
  27.   }
  28.  };
  29. }
  30.  
  31. [/color][/font]

siehe auch Rewind funktioniert nicht ordentlich!
__________________
mfg

Geändert von L.M. (02-08-2004 um 15:57 Uhr)
L.M. ist offline   Mit Zitat antworten
Alt 25-08-2004, 16:01   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 60
wenn sich jetzt meine Buttons nicht im _root befinden sondern in einem weiteren mc namens "menu", wie oder wo muss ich da was ändern das das klappt ??

Ps. im bezug auf das erste skript
Rockhound ist offline   Mit Zitat antworten
Alt 25-08-2004, 16:47   #8 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.596
ActionScript:
  1. //1. frame auf _root:
  2. menu.clicked = "";
  3. //
  4. for(var i = 1;i <= 5;i++) {
  5. this.menu["mc"+i ].onRollOver = function() {
  6. if(this != this._parent.clicked) {
  7. this.gotoAndStop(2);
  8. }
  9. };
  10. this.menu["mc"+i].onRollOut = this.menu["mc"+i].onReleaseOutside = function() {
  11. if(this != this._parent.clicked) {
  12. this.gotoAndStop(1);
  13. }
  14. };
  15. this.menu["mc"+i].onRelease = function() {
  16. if(this != this._parent.clicked) {
  17. //hier die Navigations-Aktion
  18. this.gotoAndStop(3);
  19. this._parent.clicked.gotoAndStop(1);
  20. this._parent.clicked.useHandCursor = true;
  21. this._parent.clicked = this;
  22. this.useHandCursor = false;
  23. }
  24. };
  25. }
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist gerade online   Mit Zitat antworten
Alt 25-08-2004, 16:52   #9 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 60
versteh nicht warum das nicht klappt....

hier mal die file

http://www.nooon.de/files/index.fla
Rockhound ist offline   Mit Zitat antworten
Alt 25-08-2004, 17:11   #10 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 60
Zitat:
Zitat von Rockhound
versteh nicht warum das nicht klappt....

hier mal die file

http://www.nooon.de/files/index.fla
ps.: es funzt bis das mc "menu" stoppt; also für ne sekunde




sorry für schwachsinnigen doppelpost
Rockhound ist offline   Mit Zitat antworten
Alt 11-11-2004, 00:26   #11 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.596
So, dann hätten wir hier doch noch die Flash5-Variante dazu...
Angehängte Dateien
Dateityp: zip release-Status_F5.fla.zip (5,0 KB, 417x aufgerufen)
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist gerade online   Mit Zitat antworten
Alt 25-12-2004, 22:38   #12 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 3
einzelner button

Hi,
also, ich bin völliger Anfänger und brauch ne Erklärung für Dumme
Ich hab einen einzelnen Button, der dann im Release-Zustand bleiben soll, wenn ich geklickt habe. Wie stelle ich das denn an und wo schreib ich die Programmierung hin?
Danke schonmal für alle Antworten
_sky ist offline   Mit Zitat antworten
Alt 26-12-2004, 01:44   #13 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Zitat:
Zitat von sonar

"Materialbedarf":
Für das Beispiel brauchen wir 5 Movieclips (keine Buttons – mit denen wird’s nix...). Der Einfachheit halber nehmen wir fünf rote Rechtecke, der Over-Zustand soll blau, der Release Zustand grün sein. Also flugs einen MC mit diesen drei Frames und jeweils darin befindlichen Stops erstellt, und diesen viermal auf der Bühne dupliziert. Instanznamen vergeben: mc1 bis mc5 (was sonst...)
Du darfst für diese bsp. keine normalen Button-Instanzen verwenden
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 18-02-2005, 12:53   #14 (permalink)
Ein Alter User
 
Benutzerbild von jotti
 
Registriert seit: Mar 2004
Ort: Österreich
Beiträge: 159
Smile Aw

Hi Rusty!

Ich dachte mir daß ist mal eine Aufgabe.
Zitat:
"Du darfst für diese bsp. keine normalen Button-Instanzen verwenden"
Ich habs hinbekommen mit normalen Instanznahmen.
Wer will den schon immer Mc1 bis Mc 10
Da kennt sich ja keiner mehr aus.

PHP-Code:
var meinArray = new Array("mc1","mx1","Home");// Instanznahmen
for (var 0i<=3i++) {
    
this[meinArray[i]].onRelease = function() {
        
loslassen this;
        
loslassen1(loslassen);
    };
    
this[meinArray[i]].onRollOver = function() {
        
darueberrollen this;
        
darueberrollen1(darueberrollen);
    };
    
this[meinArray[i]].onRollOut = function() {
        
rausrollen this;
        
rausrollen1(rausrollen);
    };
}
//frame 1 auf _root
var clicked;
//
darueberrollen1 = function () {
    
trace(darueberrollen+" darueberrollen");
    if (
darueberrollen != _root.clicked) {
        
darueberrollen.gotoAndStop(2);
    }
};
rausrollen1 = function () {
    
trace(rausrollen+" rausrollen");
    if (
rausrollen != _root.clicked) {
        
rausrollen.gotoAndStop(1);
    }
};
loslassen1 = function () {
    
trace(loslassen);
    if (
loslassen != _root.clicked) {
        
// hier die Navigations-Aktion
        
loslassen.gotoAndStop(3);
        
_root.clicked.gotoAndStop(1);
        
_root.clicked.useHandCursor true;
        
_root.clicked loslassen;
        
loslassen.useHandCursor false;
    }
}; 
Viel Spass wuenscht euch Jotti
Angehängte Dateien
Dateityp: zip Neu_release_status_Button.zip (5,3 KB, 607x aufgerufen)
jotti ist offline   Mit Zitat antworten
Alt 18-02-2005, 13:12   #15 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.596
Gute Arbeit, jotti, aber was Kollege rusty meinte: man darf keine Schaltflächen-Instanzen verwenden... um die Instanznamen ging es dabei nicht

Aber gut, wenn man noch ne Alternative am Start hat!
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist gerade online   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


LinkBacks (?)
LinkBack zu diesem Thema: http://www.flashforum.de/forum/stuff/stuff-release-status-fuer-buttons-102011.html
Erstellt von Für Art Datum Hits
Videotutorial: Flash Button mit Actionscript 2.0 erstellen | Free Adobe Creative Suite Video Tutorials :: Flash & Actionscript :: Photoshop & Dreamweaver :: CMS Wordpress Joomla Tutorials Dieses Thema Refback 08-06-2011 14:11 16


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele