Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-10-2007, 13:26   #1 (permalink)
Art Director
 
Benutzerbild von tomtom69
 
Registriert seit: Sep 2002
Ort: Mülheim/Ruhr
Beiträge: 698
Listener Einsatz oder Object.watch?

Hallo,

ich habe eine grundlegende Frage zum Einsatz von Listenern.

Ich möchte folgendes Umsetzten:
Wenn menu maximiert, erst reduzieren, dann die nächste Func starten.

Nun möchte ich das erreichen des Reduzierens abfangen - mit Listenern?!?

Ich habe folgendes probiert, leider ohne jeglichen (Miss)erfolg:
PHP-Code:
// Listener Test
var dasObj:Object = new Object();
var 
derListener:Object = new Object();
dasObj.closed false;

dasObj.addListener(derListener);

derListener.onChange = function() {
                
SWFAddress.setTitle("listerer change="+dasObj.closed);
            } 
Ich möchte das "umlegen" eines Zustandes/Var (global) abfangen und darauf individuell reagieren (können).

Danke für eure Hilfe,

das Tom
__________________
__________________________________________
"… blubb!"

Geändert von tomtom69 (01-10-2007 um 13:52 Uhr)
tomtom69 ist offline   Mit Zitat antworten
Alt 01-10-2007, 14:29   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Bin nicht sicher, ob ich Dir folgen kann.
Aber das Abfangen des Ändern von Variablen-
werten macht man glaube ich mit Watchern.

Siehe Flash-Hilfe » Object.watch();

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 01-10-2007, 14:31   #3 (permalink)
Art Director
 
Benutzerbild von tomtom69
 
Registriert seit: Sep 2002
Ort: Mülheim/Ruhr
Beiträge: 698
AsBroadcaster

sooo, streng nach der FL hilfe - -aber da muckt sich nichts!

PHP-Code:
var ereignisBroadcaster:Object = new Object();
var 
ereignisListener:Object = new Object();

AsBroadcaster.initialize(ereignisBroadcaster);

ereignisBroadcaster.onClosed = function() {
    
trace("closed!");
    
SWFAddress.setTitle("listener change="+this);

}

ereignisBroadcaster.addListener(ereignisListener); 
PHP-Code:
    ereignisBroadcaster.broadcastMessage("onClosed"); 
... das wird am Schluss einer Func aufgerufen, die ein Menu wieder in den Anfangszustand versetzt. Am ende soll halt übermittelt werden, daß das Menu geschlossen ist - dann soll direkt eine Func XY ausgeführt werden.

Hilfööööööö - Bittöööööö

Greetz, das Tom
__________________
__________________________________________
"… blubb!"

Geändert von tomtom69 (01-10-2007 um 15:07 Uhr)
tomtom69 ist offline   Mit Zitat antworten
Alt 01-10-2007, 15:23   #4 (permalink)
-
 
Registriert seit: Jul 2003
Beiträge: 714
Ändere keine größere Posts!
Das ist unschön, wenn man was schreiben will, aber der Ursprung, zu dem man Schreiben will, ist nicht mehr da.

Zitat:
Zitat von tomtom69 Beitrag anzeigen
sooo, streng nach der FL hilfe
Das wäre mal schön.

Code:
ereignisBroadcaster.onClosed = function() {
	trace("closed!");
	SWFAddress.setTitle("listener change="+this);

}
Falsch!


Code:
ereignisListener.onClosed = function() {
	trace("closed!");
	SWFAddress.setTitle("listener change="+this);

}
RICHTIG!

SONST:
  • Gross- und Kleinschreibung beachten
  • Nicht auf Variabeln zugreifen, die noch nicht definiert sind

Lösung, wie du sie wohl haben willst:
ActionScript:
  1. var dasObj:Object = new Object();
  2. dasObj.closed = false;
  3.  
  4. var derListener:Object = new Object();
  5. derListener.closed = function(wert) {
  6.     trace("Wert: " + wert);
  7. }
  8.  
  9. AsBroadcaster.initialize(dasObj);
  10. dasObj.addListener(derListener);
  11.  
  12. function checkClosed(eigen, alt, neu, vars) {
  13.     if(neu) {
  14.        vars.broadcastMessage("closed", neu);
  15.     }
  16. }
  17. dasObj.watch("closed", checkClosed, dasObj);
  18.  
  19. dasObj.closed = true;
  20. dasObj.closed = false;
  21. dasObj.closed = true;
  22. dasObj.closed = false;
  23. dasObj.closed = true;
  24. dasObj.closed = false;
  25. dasObj.closed = true;
  26. dasObj.closed = false;
messingfeld ist offline   Mit Zitat antworten
Alt 01-10-2007, 15:33   #5 (permalink)
Art Director
 
Benutzerbild von tomtom69
 
Registriert seit: Sep 2002
Ort: Mülheim/Ruhr
Beiträge: 698
Zitat:
Ändere keine größere Posts!
- hast völlig recht!

Danke für deine Hilfe - hab parallel noch mal bei watch in FFH geschaut und es sturr nachgearbeitet - funzt!

PHP-Code:
// neues Objekt erstellen
var myObject:Object = new Object();

// Eigenschaft zum Verfolgen der Geschwindigkeit hinzufügen
myObject.closed false;

// Rückruffunktion, die bei Änderungen der Eigenschaft "speed" auszuführen ist
var closeWatcher:Function = function(propoldValnewVal) {
    
// Überschreiten des Grenzwerts für "speed" überprüfen
    
if (newVal == true) {
    
trace ("Menu closed");
    } else {
    
trace ("Still menu");
     }
// Wert von newVal zurückgeben
return newVal;
}
// watch() zum Registrieren der Ereignisprozedur verwenden. Übergebene Parameter:
myObject.watch("closed"closeWatcher); 
__________________
__________________________________________
"… blubb!"
tomtom69 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 16:00 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele