2010-08-06 12 views
0

Toute réflexion sur une bonne façon d'accomplir quelque chose le long des lignes deSystem.setClipboard() à l'intérieur gestionnaire d'événements

var request:URLRequest = new URLRequest("http://myurl.com"); 
var loader:URLLoader = new URLLoader(); 
loader.addEventListener(Event.COMPLETE, function(event:Event):void { 
System.setClipboard(loader.data); 
}); 

en actionscript 3?

Il semble que System.setClipboard() n'est pas disponible dans un gestionnaire d'événements (ce qui est au moins logique compte tenu de ce que je sais sur la sécurité Flash).

Est-il possible de:

  • faire fonctionner?
  • ou de bloquer le chargement de l'URL afin que je puisse ensuite appeler setClipboard() dans le flux d'événements principal?

Répondre

1

La seule solution est de montrer une alerte (ou autre interface utilisateur) à l'utilisateur et attendre un clic:

function completeHandler(event:Event):void 
{ 
    Alert.show("Click OK to copy text to clipboard", "Alert", 
     Alert.OK | Alert.CANCEL, this, 
     callback, null, Alert.OK); 
} 

function callback(event:CloseEvent):void 
{ 
    // Check to see if the OK button was pressed. 
    if (event.detail == Alert.OK) 
     System.setClipboard(loader.data); 
} 
1

Pour AIR utilisation

Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT,"some Text value to clipboard"); 
+0

Cela fonctionne pour moi, même si pas contrôlé par l'utilisateur, ce qui est génial. – Breign