Flashhilfe.de - Flash Community

Probleme mit dem schließen eines native Windows [AIR 2]

 


AntwortenRegistrieren Seite1  

flex5500#1
Benutzerbild von flex5500
Beiträge: 14
Wohnort: Koblenz
Registriert: Jul 2011

24.08.2011, 11:35

Hi Leute,

Ich möchte das Schließen eines NativeWindows abfangen. Dazu habe ich ganz oben im mxml-tag eine Funktion namens closing="bla_handler" eingebaut.

der bla_handler sieht so aus:

event.preventDefault();         
            
ActionScript:
1
2
3
4
5
6
7
8
9
10
event.preventDefault();         
            
            if(changerTrigger==true)
            {
                 Alert.show( "Changes will be lost, if you quit now! Really want to quit?", "Attention", (Alert.YES | Alert.NO), this, alertHandler);
              }
             else
            {
                 this.close();
              }


wenn ich mein "nativeWindow" schließen möchte kracht es bei mir mit dieser Fehlermeldung:
Error #2094: Event dispatch recursion overflow.

Weiß da jemand Rat?

Viele Grüße
Christian
Geändert von flex5500 am 24.08.11 um 11:59 Uhr
Werbung
Beiträge: 0
Registriert: Feb 2016


Sebastian#2
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

24.08.2011, 11:47

Hallo,

mit:
ActionScript:
1this.close();


führst Du Deinen Event-Methode immer wieder aus weswegen es zu der Fehlermeldung kommt. So sollte es funktionieren:

ActionScript:
1
2
3
4
5
6
                if(changerTrigger==true)
                {
                      event.preventDefault();   
 
                      Alert.show( "Changes will be lost, if you quit now! Really want to quit?", "Attention", (Alert.YES | Alert.NO), this, alertHandler);
                  }


Viele Grüße,
Sebastian
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
flex5500#3
Benutzerbild von flex5500
Beiträge: 14
Wohnort: Koblenz
Registriert: Jul 2011

Themenautor/in

24.08.2011, 11:51

Hi Sebastian,

danke für deinen Tipp den else-Block habe ich testweise auch mal auskommentiert...dann schließt sich allerdings gar nichts mehr...

hier übrigens mein alert-handler:

ActionScript:
1
2
3
4
5
6
7
protected function alertHandler( event:CloseEvent ):void
         {
              if (event.detail == 1)
              {         
                 this.close();   
              }            
           }


edit: hab aus Versehen auf den "Nachricht beantwortet"-Button gedrückt^^ sry..könntest das rückgängig machen? -danke.
Geändert von flex5500 am 24.08.11 um 11:52 Uhr
Sebastian#4
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

24.08.2011, 13:43

>> edit: hab aus Versehen auf den "Nachricht beantwortet"-Button gedrückt^^ sry..könntest das rückgängig machen? -danke.
Nach erneuten Klick auf den Button sollte die Frage eigentlich wieder offen sein. Falls dies nicht geht, gib mir bitte bescheid.

Zum Problem. Vom Ablauf muss es doch so sein?

User Klick auf Custom-Button:
ActionScript:
1
2
3
4
private function closeApp():void
{
      this.close();
}

Nach Klick wird der Event closing geworfen und das Script geht dort weiter:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private function closeingHandler(event:Event):void
{
       if(changerTrigger==true)
       {
             event.preventDefault();   
   
             Alert.show( "Changes will be lost, if you quit now! Really want to quit?", "Attention", (Alert.YES | Alert.NO), this, alertHandler);
       }
}

private function alertHandler(event:CloseEvent):void
{
      if(event.detail == 1)
      {
          changerTrigger = false;
          this.close();   
      }
}


Insofern der gestoppte Closing Event das schließen das Fenster verhindert, sollte es eigentlich so klappen.

Falls nicht, ganz Du mal kurz ein mini Projekt anhängen? Dann teste ich das mal durch. Vielleicht habe ich noch ein Denkfehler der beim Testen schneller auffällt.

Viele Grüße,
Sebastian
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Geändert von Sebastian am 24.08.11 um 13:44 Uhr
Werbung
Beiträge: 0
Registriert: Feb 2016


flex5500#5
Benutzerbild von flex5500
Beiträge: 14
Wohnort: Koblenz
Registriert: Jul 2011

Themenautor/in

24.08.2011, 15:42

>> edit: hab aus Versehen auf den "Nachricht beantwortet"-Button gedrückt^^ sry..könntest das rückgängig machen? -danke.
Nach erneuten Klick auf den Button sollte die Frage eigentlich wieder offen sein. Falls dies nicht geht, gib mir bitte bescheid.

-Nein hat nicht geklappt. Aber ich kanns nochmal probieren wenn du magst^^

Ja du hast es richtig verstanden.

Hab dir aber nochmal ein Beispiel aufbereitet...
Konnte es nicht hochladen: Die hochgeladene Datei ist größer als die erlaubten 400.00 KB.

Alternativlink:

http://www.xup.in/dl,10842255/test2.zip/

Bitte nach dem Download Datei mit hier dem Link löschen:
http://www.xup.in/kill,10842255,89fe00be5c/

Gruß
Christian
Sebastian#6
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

24.08.2011, 18:52

Ok, dann hat mein Beispiel eigentlich schon funktioniert, ich hatte nur das changerTrigger missbraucht ;)

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private var closeWindow:Boolean = false;

protected function window2_closingHandler(event:Event):void
{
     if(contentChanged.selected && closeWindow == false)
     {   
        Alert.show( "Changes will be lost, if you quit now! Really want to quit?", "Attention", (Alert.YES | Alert.NO), this, alertHandler);
        
        event.preventDefault();
     }
}

private function alertHandler(event:CloseEvent):void
{            
     if(event.detail == 1)
     {
        closeWindow = true;
        
        this.close();   
     }   
}


Grüße,
Sebastian
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil

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   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de