Flashhilfe.de - Flash Community

Menübuttons Statusabfrage (aktiviert/deaktiviert) PROBLEM ! [Flash CS5]

 


AntwortenRegistrieren Seite1  

russian-dima#1
Benutzerbild von russian-dima
Beiträge: 12
Registriert: May 2007

16.03.2013, 17:57

Hallo liebe Flashhilfegemeinde,

ich möchte gleich vorab sagen, dass ich ein Anfänger in Sachen Flashprogrammierung bin und versuche mir das ganze selber beizubringen (mit großen Mühen).

Ich arbeite gerade an meinem sogenannten "Control-Panel" (nichts großartiges) und stehe vor einem für mich noch unlösbarem Problem.

Das Problem besteht darin, dass ich eine Lösung in Sachen "Button-Status", ob nun ein Knopf aktiv oder inaktiv ist, finden muss.

Bei meinem FLA-Beispiel, soll folgendes passieren.

Bewegt man die Maus über einen der Buttons, so soll eine "Anzeigetafel" öffnen/ausfahren.
Das habe ich mit "Mouse-Over" gelöst bekommen.

Sobald nun die Maus die Buttonfläche verlässt, soll sich die "Anzeigetafel" wieder schließen/einfahren.
Auch dies habe ich mittels "Mouse-Out" hinbekommen.

Beim Clicken auf einen der Buttons, soll die "Anzeigetafel" sozusagen fixiert werden.
Dabei soll die Tafel solange nicht mehr einfahren, bis man entweder einen anderen Button drückt (Tafel soll dann sofort von der Bühne ausgeblendet werden), oder wenn man außerhalb der Tafel einen Mausklick betätigt.

Und genau hier liegt auch der Knackpunkt/Problem meines kleinen Projekts.

Zwar wird die Anzeigetafel mittels "Mouse_CLICK" sozusagen fixiert, jedoch wird diese Fixierung sofort wieder durch das "Mouse_OUT" aufgehoben.

Wie könnte man das Problem am einfachsten lösen. Bitte denkt daran, bin wirklich nicht gerade der GURU in solchen Sachen.

Ich Danke für jeden Vorschlag.

P.S.: Diesen Link, habe ich mir auch schon angesehen. Leider muss ich sagen, dass das SWF-Beispiel von "stetabar" für mich noch etwas zu kompliziert ist und ich das Code-Beispiel von "Springer" nicht  zum laufen bekommmen, habe, da mir wohl noch das nötige wissen dazu feht.

Hoffe, dass "Springer" persönlich mal in diesem Thread vorbeischaut :-) !

Hier der Link: http://www.flashhilfe.de/forum/flash/menuebuttons-sollen-nicht-gleichzeitig-aktiv-sein-226614-226614.html

und hier noch der Code der sich in dieser SWF verbirgt.

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Button1.addEventListener(MouseEvent.MOUSE_OVER, Tafel_ausfahren);
Button1.addEventListener(MouseEvent.MOUSE_OVER, Tafel_ausfahren);
Button2.addEventListener(MouseEvent.MOUSE_OVER, Tafel_ausfahren);
Button3.addEventListener(MouseEvent.MOUSE_OVER, Tafel_ausfahren);
Button4.addEventListener(MouseEvent.MOUSE_OVER, Tafel_ausfahren);
Button5.addEventListener(MouseEvent.MOUSE_OVER, Tafel_ausfahren);

function Tafel_ausfahren(event:MouseEvent) {Object(root).Control_Tafel.gotoAndPlay(2);}

Button1.addEventListener(MouseEvent.MOUSE_OUT, Tafel_einfahren);
Button2.addEventListener(MouseEvent.MOUSE_OUT, Tafel_einfahren);
Button3.addEventListener(MouseEvent.MOUSE_OUT, Tafel_einfahren);
Button4.addEventListener(MouseEvent.MOUSE_OUT, Tafel_einfahren);
Button5.addEventListener(MouseEvent.MOUSE_OUT, Tafel_einfahren);

function Tafel_einfahren(event:MouseEvent) {Object(root).Control_Tafel.gotoAndPlay(20);}

Button1.addEventListener(MouseEvent.CLICK, Tafel_fixieren);
Button2.addEventListener(MouseEvent.CLICK, Tafel_fixieren);
Button3.addEventListener(MouseEvent.CLICK, Tafel_fixieren);
Button4.addEventListener(MouseEvent.CLICK, Tafel_fixieren);
Button5.addEventListener(MouseEvent.CLICK, Tafel_fixieren);

function Tafel_fixieren(event:MouseEvent) {Object(root).Control_Tafel.gotoAndStop(16);}

stop();


Angehängte Dateien:
Adobe Flash Animationen Control-Panel.swf11.74 KB
russian-dima#2
Benutzerbild von russian-dima
Beiträge: 12
Registriert: May 2007

Themenautor/in

17.03.2013, 00:01

Hat keiner eine Idee dazu?

Könnte man das vielleicht mit einem "leichten" if-Befehl lösen?

Einen, den man auch versteht?

Oder kann mir dass einer mit der Variable "i" vielleicht ausführlich erklären, wie ich den Zustand des Buttons in einer Variable abspeichern kann?

Hab schon zich solcher Beiträge gesehen, muss aber zugeben dass ich da noch nicht durch blicke.

Vielleicht gibts, da ja auch eine total simple Lösung?

Bin für absolut jeden Vorschlag offen!

Danke im voraus!
Kerstin77#3
Benutzerbild von Kerstin77
Beiträge: 1004
Registriert: Jul 2008

17.03.2013, 13:52

Hallo,

das Beispiel von Springer kann bei Dir nicht funktionieren, denn das ist AS2.

Aber vielleicht hilft Dir dieser Beitrag hier.

Grüße,
Kerstin
Wer Rechtschreibfehler findet, darf sie gerne behalten.
russian-dima#4
Benutzerbild von russian-dima
Beiträge: 12
Registriert: May 2007

Themenautor/in

17.03.2013, 13:58

Welch ein Zufall, wollte dich grade schon anschreiben :-)

Ja habe diesen Beitrag bereits gesehen und gelesen, ist aber für mich noch alles zu schwer :-(

Blicke da wirklich noch nicht durch. Hab auch noch andere Beiträge gesehen, jedoch ist es für mich noch sehr schwierig dieses ganze gescripte richtig zu erstellen.

Wenn ich was mit eigener Idee probiere, bekomme ich nur Fehler ausgeworfen, das ist ja das Problem :-)

Habe bereits eine theoretische Lösung im Kopf, die für mich einigermaßen übersichtlich und verständlich ist.

Das hatte ich gerade eben noch bei Flashforum gepostet.

Hallo ich bins mal wieder

da ich hier wohl völlig auf mich alleine gestellt bin, (was mich echt frustriert)
habe ich die Sache selbst in die Hand genommen.

Habe eine theoretische Lösung für mein Problem gefunden.

Das Prinzip, meiner Lösung würde dann denke ich mal ungefähr so aussehen:

PHP-Code:
var id:Number;

function überprüfung_id () {if (id=0) {tafel_ausfahren};};
function überprüfung_id () {if (id=1) {tafel_einfahren};};
function überprüfung_id () {if (id=2) {keine Funktion};}; 
Im Grunde möchte ich eine Statusabfrage erstellen, die dann 3 Verschiedene Werte abfragt. Wert-0, Wert-1 und Wert-2.

Wert-0 soll dann den eingefahrenen Tafelzustand wiederspiegeln.
wert-1 soll denn ausgefahrenen Tafelzustand darstellen.
Und Wert-3 soll den fixierten Zustand der Anzeigetafel anzeigen.

Im Grunde müsste man doch nun nur noch eine if-Abfrage generieren, die diese 3-Zustände unterscheiden kann.

Alles müsste dann doch mit der "Mouse_OVER"-Funktion gesteuert werden können, oder habe ich da einen Denkfehler?


Mein Problem ist es jetzt aber, genau diesen Code mit der if-else zu erstellen.
All meine Versuche sind bis jetzt gescheitert

Bekomme nur Fehler ausgeworfen, HILLLLFFFFEEEEEEEEEEEEEEEEE



Ich kann auch gerne nochmal die SWF hochladen, wäre dir sehr verbunden, wenn du vielleciht mal Hand an meine SWF anlegen könntest ;-)
Kerstin77#5
Benutzerbild von Kerstin77
Beiträge: 1004
Registriert: Jul 2008

17.03.2013, 14:06

Ich schaue gerne mal rein, aber dann brauche ich die Fla-Datei (Version CS4) und nicht die SWF.
Wer Rechtschreibfehler findet, darf sie gerne behalten.
russian-dima#6
Benutzerbild von russian-dima
Beiträge: 12
Registriert: May 2007

Themenautor/in

17.03.2013, 14:10

Ok, lässt sich einrichten, einen moment bitte.

Schaue eben noch über die FLA und schicke sie dir im originalen Zustand, sprich mit der dazugehörigen Problematik :-)

FLA kommt sofort ;-)
russian-dima#7
Benutzerbild von russian-dima
Beiträge: 12
Registriert: May 2007

Themenautor/in

17.03.2013, 14:21

Hier nochmal die FLA und die SWF wie ich sie bis jetzt hingebogen bekommen habe.

Button 1 verhält sich ein wenig anders als die 4 restlichen aktiven Buttons.

die Buttons rechts sind noch nicht bearbeitet worden, das kommt noch zu einem späteren Zeitpunkt.

Wie gesagt, das Problem sieht man denke ich sofort. Habe bei Button1 den MOUSE_OUT-Befehl einfach mal deaktiviert, um zu zeigen wie sich die Tafel im Normalfall verhalten soll. Das Problem ist dann aber nur, dass ich die Tafel nicht mehr eingefahren bekomme.

Naja, so eine kleiner Lösungsvorschlag ist auch schon in der FLA mit drin, aber deaktiviert, da dieser voll in die Hose geht :-)

Schau dir das ganze einfach mal an ich denke für dich ist das ein Fingerschnippsen.

Hoffe dass, du an meinem Lösungsvorschlag anknüpfen kannst, da ich bei einem anderen Lösungsversuch vermutlich wiedermal ins Schleudern geraten werde :-)

Hier die SWF und FLA:

Angehängte Dateien:
Adobe Flash Quelldatei Control-Panel.fla105.63 KB
Adobe Flash Animationen Control-Panel.swf11.48 KB
Kerstin77#8
Benutzerbild von Kerstin77
Beiträge: 1004
Registriert: Jul 2008

17.03.2013, 14:26

Ok, melde mich nachher.
Wer Rechtschreibfehler findet, darf sie gerne behalten.
Kerstin77#9
Benutzerbild von Kerstin77
Beiträge: 1004
Registriert: Jul 2008

17.03.2013, 18:24

Kann die Datei nicht öffnen, hab (wie oben geschrieben) nur CS4. Bitte in niedrigerer Version speichern.
Wer Rechtschreibfehler findet, darf sie gerne behalten.
russian-dima#10
Benutzerbild von russian-dima
Beiträge: 12
Registriert: May 2007

Themenautor/in

17.03.2013, 18:44

ok, kommt sofort, hab aber leider schon etwas rumgespielt :-)
aber macht nix.

Kommt sofort ;-)

Lade dann eben noch die originale und die bereits bearbeitete version hoch ;-) (bitte um etwas Geduld)
russian-dima#11
Benutzerbild von russian-dima
Beiträge: 12
Registriert: May 2007

Themenautor/in

17.03.2013, 18:59

Ok, hier hätten wir es nochmal, das ganze nun in CS4 abgespeichert.

1) Version 1.0 ---> das ist die, worüber ich was wissen wollte.

2) Version 1.1 ---> das ist die, wo ich halt einen anderen Weg eingeschlagen habe, da ich halt keine Lösung für mein Problem gefunden hatte. (Was aber nicht heissen soll, dass das Thema damit abgeschlossen ist :-)  )

Also, schau mal rein, vielleicht kannst du mir ja auch ein wenig die Struktur von Funktionen, sowie des if-Befehls ausführlich erklären. Alles was ich so bis jetzt im Forum gelesen oder gesehen habe, hat mich nicht wirklich weitergebracht.

Anhand einfacher Beispiele sollte das aber machbar sein, auch für so Anfänger wie mich denke ich mal. :-)

Hier die Dateien im CS4-Format.

Angehängte Dateien:
Adobe Flash Quelldatei Control-Panel (original).fla280.50 KB
Adobe Flash Animationen Control-Panel (original).swf11.48 KB
russian-dima#12
Benutzerbild von russian-dima
Beiträge: 12
Registriert: May 2007

Themenautor/in

17.03.2013, 19:01

Und hier halt eben noch die bereits erweiterte / veränderte Version 1.1

Angehängte Dateien:
Adobe Flash Quelldatei Control-Panel (Version1.1).fla289.50 KB
Adobe Flash Animationen Control-Panel (Version1.1).swf15.92 KB
Kerstin77#13
Benutzerbild von Kerstin77
Beiträge: 1004
Registriert: Jul 2008

17.03.2013, 19:42

So, da ist die Datei, schau mal rein.

Damit die Button den aktiven Zustand behalten können, dürfen es keine Buttons mehr sein, sondern MovieClips. Klingt jetzt vielleicht etwas unlogisch, aber den Standardbutton von Flash kann kein Zustand zugewiesen werden wie z.B. "bleibe auf aktiv stehen".

Zur Vereinfachung (für mich) habe ich den ersten Button in einen MovieClip umgewandelt und ihn auf der Bühne dupliziert. Die Grafiken kannst Du ja selber austauschen ;-)

Grüße
Kerstin
Wer Rechtschreibfehler findet, darf sie gerne behalten.

Angehängte Dateien:
Adobe Flash Quelldatei Control-Panel (original).fla472.50 KB
russian-dima#14
Benutzerbild von russian-dima
Beiträge: 12
Registriert: May 2007

Themenautor/in

17.03.2013, 20:38

Ja das ist schon mal ganz cool :-) (an dieser Stelle schon mal einen großen Dank)

Zwar sollte auch die Anzeigetafel, bei dem jeweiligen Button der gerade aktiv ist, ausgefahren stehen bleiben (fixiert werden), aber ich denke das bekomme ich schon noch irgendwie hin :-)

Heißt für mich jetzt wieder mächtig viel Kopfarbeit, um dein Code richtig zu verstehen.

Stelle nachher noch die neueste Version von meinem Panel vor, wo ich das Problem umgangen bin :-)


DANKE Kerstin777 !!!

Ich melde mich bald wieder ;-)
russian-dima#15
Benutzerbild von russian-dima
Beiträge: 12
Registriert: May 2007

Themenautor/in

17.03.2013, 22:17

So hier nochmal die aktuellste Version meines Control-Panels, leider habe ich das von dir Vorgeschlagene Konzept noch nicht umsetzen können, sodass es damit noch etwas dauern wird, aber ich werde auch noch die Version mit der Lösung hier in diesem Thread anbieten, damit auch alle was davon haben.

Hier nochmal der momentane Stand der dinge, wobei es hier noch ein kleines Problemchen mit dem Sound gibt.

Meine frage: Warum wird der "Mouse-Over-Sound" beim Klicken auf den Button, ebenfalls mit abgespielt? Sehe da nicht den hacken (confused)

Angehängte Dateien:
Adobe Flash Animationen Control-Panel (Version1.16).swf18.65 KB
Geändert von russian-dima am 18.03.13 um 00:56 Uhr

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2022 Sebastian Wichmann - Flashhilfe.de