2012-02-26 5 views
0

J'utilise browseForSave() pour permettre à l'utilisateur d'enregistrer un fichier avant de revenir à un écran précédent. À partir de maintenant, le bouton d'annulation de la boîte de dialogue de sauvegarde ferme simplement la boîte de dialogue de sauvegarde. Je veux voir si le bouton d'annulation a été cliqué, et si oui continuez à revenir à l'écran précédent sans enregistrer. À l'heure actuelle, la personne doit enregistrer le fichier afin de revenir en arrière. Voici le code que j'utilise.Flex - Déterminer quel bouton a été cliqué dans la boîte de dialogue

public function save(e:MouseEvent):void{ 
      if (currentFile) { 
      if (stream != null) 
      { 
       stream.close(); 
      } 
      stream = new FileStream(); 
      stream.openAsync(currentFile, FileMode.WRITE); 
      stream.addEventListener(IOErrorEvent.IO_ERROR, writeIOErrorHandler); 
      var str:String = mainTextField.text; 
      str = str.replace(/\r/g, "\n"); 
      str = str.replace(/\n/g, File.lineEnding); 
      stream.writeUTFBytes(str); 
      stream.close(); 
      dataChanged = false; 
     } 
     else 
     { 
      saveAs(null); 
     } 
     } 

     private function saveAs(event:MouseEvent):void 
     { 
      var fileChooser:File; 
      if (currentFile) 
      { 
       fileChooser = currentFile; 
      } 
      else 
      { 
       fileChooser = File.documentsDirectory.resolvePath('untitled.html') 
      } 
      fileChooser.browseForSave("Save As"); 
      fileChooser.addEventListener(Event.SELECT, saveAsFileSelected); 
     } 

Répondre

1

S'il s'agit d'AIR, vous pouvez écouter l'événement 'cancel'. Sinon, je ne pense pas que tu puisses.

+0

Oui c'est de l'air. Merci. – RapsFan1981

Questions connexes