Packageflash.desktop
Classepublic class Clipboard
HéritageClipboard Inheritance Object

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.0

La classe Clipboard fournit un conteneur pour transférer les données et les objets par l'intermédiaire du presse-papiers. Dans AIR, la classe Clipboard est également utilisée pour les opérations de glisser-déposer. Le presse-papiers du système d'exploitation est accessible par la propriété statique generalClipboard.

Un objet Clipboard peut contenir les mêmes informations en plusieurs formats. Le fait de fournir les informations en plusieurs formats augmente les chances qu'une autre application puisse les exploiter. Ajoutez des données dans un objet Clipboard avec la méthode setData() ou setDataHandler().

Les formats standard sont :

Ces constantes des noms des formats standard sont définies dans la classe ClipboardFormats.

Lors d'un transfert entre Flash Player ou une application AIR et le système d'exploitation, les formats standard sont automatiquement convertis entre les types de données ActionScript et le presse-papiers natif.

Vous pouvez utiliser des formats définis par l'application pour ajouter des objets ActionScript dans un objet Clipboard. Si un objet est sérialisable, une référence et un clone de l'objet peuvent être rendus disponibles. Les références d'objet ne sont valides que dans l'application d'origine.

Lorsque la conversion des informations à transférer en un format particulier réclame des calculs poussés, vous pouvez fournir le nom d'une fonction qui effectue la conversion. La fonction est appelée si, et seulement si, ce format est lu par le composant ou l'application de réception. Ajoutez une fonction de rendu différé à un objet Clipboard avec la méthode setDataHandler().

Remarque réservée aux applications AIR : les objets Clipboard référencés par les objets événement déclenchés pour les événements de glisser/déposer et de copier/coller HTML ne sont pas du même type que l'objet AIR Clipboard. L'objet Clipboard JavaScript est décrit dans le guide du développeur AIR.

Consulter les exemples

Voir aussi

flash.desktop.NativeDragManager
flash.desktop.ClipboardFormats
flash.desktop.ClipboardTransferMode


Propriétés publiques
 PropriétéDéfini par
 Inheritedconstructor : Object
Référence à l'objet de classe ou à la fonction constructeur d'une occurrence donnée d'un objet.
Object
  formats : Array
[lecture seule] Tableau de chaînes contenant les noms des formats de données disponibles dans cet objet Clipboard.
Clipboard
  generalClipboard : Clipboard
[statique] [lecture seule] Presse-papiers du système d'exploitation.
Clipboard
 Inheritedprototype : Object
[statique] Référence à l'objet prototype d'un objet de classe ou fonction.
Object
Méthodes publiques
 MéthodeDéfini par
  
Crée un objet Clipboard vide.
Clipboard
  
Supprime toutes les représentations de données dans cet objet Clipboard.
Clipboard
  
Supprime la représentation des données au format spécifié.
Clipboard
  
getData(format:String, transferMode:String = "originalPreferred"):Object
Récupère les données du presse-papiers si elles sont présentes au format spécifié.
Clipboard
  
Vérifie si des données sont présentes au format spécifié dans cet objet Clipboard.
Clipboard
 Inherited
Indique si la propriété spécifiée d'un objet est définie.
Object
 Inherited
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l'objet spécifié en tant que paramètre.
Object
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
  
setData(format:String, data:Object, serializable:Boolean = true):Boolean
Ajoute une représentation des informations à transférer dans le format de données spécifié.
Clipboard
  
setDataHandler(format:String, handler:Function, serializable:Boolean = true):Boolean
Ajoute une référence à une fonction de gestionnaire qui produit les données pour le format spécifié à la demande.
Clipboard
 Inherited
Définit la disponibilité d'une propriété dynamique pour les opérations en boucle.
Object
 Inherited
Renvoie la représentation sous forme de chaîne de l'objet spécifié.
Object
 Inherited
Renvoie la valeur primitive de l'objet spécifié.
Object
Détails de la propriété
formatspropriété
formats:Array  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.0

Tableau de chaînes contenant les noms des formats de données disponibles dans cet objet Clipboard.

Les constantes de chaîne des noms des formats standard sont définies dans la classe ClipboardFormats. D'autres chaînes, définies par l'application, peuvent également être utilisées comme noms de format pour transférer les données sous forme d'objet.



Implémentation
    public function get formats():Array

Voir aussi


Exemple
L'exemple suivant lit le tableau de formats du presse-papiers du système :
var availableFormats:Array = Clipboard.generalClipboard.formats;
generalClipboardpropriété 
generalClipboard:Clipboard  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.0

Presse-papiers du système d'exploitation.

Toutes les données collées dans le presse-papiers du système sont disponibles pour les autres applications. Cela peut comprendre le code distant non sécurisé s'exécutant dans un navigateur Web.

Remarque : dans les applications de Flash Player 10, une opération de collage à partir du presse-papiers implique tout d'abord un événement utilisateur (par exemple, utilisation du raccourci clavier de la commande Coller ou clic de souris sur la commande Coller d'un menu contextuel). Clipboard.getData() ne renvoie le contenu du presse-papiers que si InteractiveObject a reçu et exécute un événement coller. En aucun autre cas, l'appel à Clipboard.getData() ne peut échouer. La même restriction s'applique dans le contenu AIR qui se trouve en dehors du sandbox de l'application.

L'objet generalClipboard est créé automatiquement. Vous ne pouvez pas affecter une autre occurrence Clipboard à cette propriété. Vous pouvez par contre utiliser les méthodes getData() et setData() pour lire et écrire des données dans l'objet existant.

Il est toujours préférable d'effacer le presse-papiers avant d'y écrire de nouvelles données afin de s'assurer que les anciennes données de tous les formats sont effacées.



Implémentation
    public static function get generalClipboard():Clipboard

Exemple
Pour écrire dans le presse-papiers du système d'exploitation :
import flash.desktop.ClipboardFormats;
 
 var copy:String = "A string to copy to the system clipboard.";
 Clipboard.generalClipboard.clear();
 Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, copy);
Pour lire le presse-papiers du système d'exploitation :
import flash.desktop.ClipboardFormats;
 
 var pasteData:String  = Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT) as String;
Détails du constructeur
Clipboard()Constructeur
public function Clipboard()

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.0

Crée un objet Clipboard vide.


Valeur émise
IllegalOperationError new Clipboard() n'est pas pris en charge dans Flash Player, car seul le presse-papiers du système d'exploitation peut être utilisé dans Flash Player. Pour les opérations de copier-coller impliquant le presse-papiers du système d'exploitation, utilisez l'objet Clipboard.generalClipboard au lieu de créer un nouvel objet Clipboard. Ne renvoie pas d'erreur dans une application AIR.

Voir aussi


Exemple

L'exemple suivant crée un nouveau presse-papiers à utiliser avec la classe NativeDragManager.

Remarque : pour les opérations de copier-coller impliquant le presse-papiers du système d'exploitation, utilisez l'objet Clipboard.generalClipboard au lieu de créer un nouveau presse-papiers.

import flash.desktop.Clipboard;
 
 var clipboard:Clipboard = new Clipboard();
Détails de la méthode
clear()méthode
public function clear():void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.0

Supprime toutes les représentations de données dans cet objet Clipboard.


Exemple

L'exemple suivant efface le contenu du presse-papiers du système :
Clipboard.generalClipboard.clear();
clearData()méthode 
public function clearData(format:String):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.0

Supprime la représentation des données au format spécifié.

Paramètres

format:String — Format des données à supprimer.


Exemple

L'exemple suivant efface toutes les données au format ClipboardFormats.TEXT_FORMAT dans le presse-papiers du système :
import flash.desktop.ClipboardFormats;
 
 Clipboard.generalClipboard.clearData(ClipboardFormats.TEXT_FORMAT);
getData()méthode 
public function getData(format:String, transferMode:String = "originalPreferred"):Object

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.0

Récupère les données du presse-papiers si elles sont présentes au format spécifié. Dans Flash Player, un événement utilisateur (pression de touche ou clic de souris, par exemple) est requis avant d'utiliser getData(). Appelez getData() au sein d'un événement paste lancé par un utilisateur. Dans AIR, cette restriction s'applique uniquement au contenu s'exécutant hors du sandbox de sécurité de l'application.

Lors d'un accès à un format de données standard, les données sont renvoyées sous forme de nouvel objet de type Flash Player ou AIR correspondant.

Lors d'un accès à un format défini par l'application, la valeur du paramètre transferMode détermine si une référence à l'objet original ou un objet anonyme contenant une copie sérialisée de l'objet original est renvoyé. Lorsqu'un mode originalPreferred ou clonePreferred est spécifié, Flash Player ou AIR renvoie l'autre version lorsque la version favorite n'est pas disponible. Lorsqu'un mode originalOnly ou cloneOnly est spécifié, Flash Player ou AIR renvoie null lorsque la version demandée n'est pas disponible.

Paramètres

format:String — Format des données à renvoyer. La chaîne de format peut contenir l'un des noms standard définis dans la classe ClipboardFormats ou un nom défini par l'application.
 
transferMode:String (default = "originalPreferred") — Indique si une référence ou une copie sérialisée doit être renvoyée lors d'un accès à un format de données défini par l'application. La valeur doit être l'un des noms définis dans la classe ClipboardTransferMode. Cette valeur est ignorée pour les formats de données standard ; une copie est toujours renvoyée.

Valeur renvoyée
Object — Objet dont le type correspond au format des données.

Valeur émise
Error transferMode n'est pas l'un des noms définis dans la classe ClipboardTransferMode.
 
IllegalOperationError — L'objet Clipboard demandé n'est plus dans le domaine (AIR uniquement).
 
SecurityError — La lecture ou l'écriture dans le presse-papiers n'est plus autorisée dans ce contexte. Dans Flash Player, l'appel de cette méthode n'aboutit que lors du traitement d'un événement utilisateur (pression de touche ou clic de souris, par exemple). Dans AIR, cette restriction s'applique uniquement au contenu s'exécutant hors du sandbox de sécurité de l'application.

Voir aussi


Exemple

L'exemple suivant lit le texte provenant du presse-papiers du système, si disponible :
import flash.desktop.ClipboardFormats;

 var pasteData:String = Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT) as String;
hasFormat()méthode 
public function hasFormat(format:String):Boolean

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.5

Vérifie si des données sont présentes au format spécifié dans cet objet Clipboard.

Utilisez les constantes dans la classe ClipboardFormats pour référencer les noms de format standard.

Paramètres

format:String — Type de format à vérifier.

Valeur renvoyée
Booleantrue, si des données sont présentes au format spécifié.

Valeur émise
IllegalOperationError — L'objet Clipboard demandé n'est plus dans le domaine (AIR uniquement).
 
SecurityError — La lecture ou l'écriture dans le presse-papiers n'est plus autorisée dans ce contexte.

Voir aussi


Exemple

L'exemple suivant teste le contenu du presse-papiers du système afin de déterminer si des données au format texte y sont disponibles :
if(Clipboard.generalClipboard.hasFormat(ClipboardFormats.TEXT_FORMAT)){
    //do something 
}
setData()méthode 
public function setData(format:String, data:Object, serializable:Boolean = true):Boolean

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.0

Ajoute une représentation des informations à transférer dans le format de données spécifié. Dans Flash Player, un événement utilisateur (pression de touche ou clic de souris, par exemple) est requis avant d'utiliser setData(). Dans AIR, cette restriction s'applique uniquement au contenu s'exécutant hors du sandbox de sécurité de l'application.

Différentes représentations des mêmes informations peuvent être ajoutées dans le presse-papiers dans divers formats. Ceci augmente la capacité des autres composants ou applications à exploiter les données disponibles. Par exemple, dans une application AIR, une image peut être ajoutée sous forme de données bitmap pour une utilisation dans des applications de retouche d'images, sous forme d'objet Bitmap pour une utilisation avec d'autres applications AIR et sous forme de fichier PNG encodé pour un transfert vers le système de fichiers natif.

Le paramètre data doit être du type de données approprié pour le format spécifié :

FormatTypeDescription
ClipboardFormats.TEXT_FORMAT Chaîne Données de chaîne
ClipboardFormats.HTML_FORMAT Chaîne Données de chaîne HTML
ClipboardFormats.URL_FORMAT Chaîne Chaîne URL (AIR uniquement)
ClipboardFormats.RICH_TEXT_FORMAT ByteArray Données RTF
ClipboardFormats.BITMAP_FORMAT BitmapData Données bitmap (AIR uniquement)
ClipboardFormats.FILE_LIST_FORMAT Tableau de File Tableau de fichiers (AIR uniquement)
Nom de format personnaliséTousRéférence d'objet et clone sérialisé

Les noms de format personnalisé ne doivent pas commencer par « air: » ou « flash: ». Dans une application AIR, pour éviter les conflits de noms lorsque vous utilisez des formats personnalisés, vous pouvez utiliser l'ID de votre application ou un nom de package comme préfixe, par exemple « com.nomApplication.exemple.dataPacket ».

Dans le cas d'un transfert au sein de Flash Player ou d'une application ou entre Flash Player et des applications AIR, le paramètre serializable détermine si une référence et une copie doivent toutes deux être disponibles ou si seule une référence à un objet est disponible. Définissez serializable sur true pour que la référence et une copie de l'objet de données soient disponibles. Définissez serializable sur false pour que seule la référence de l'objet soit disponible. Les références d'objet n'étant valides que dans l'application en cours, le fait de définir serializable sur false implique également que les données de ce format ne soient pas disponibles pour les autres applications AIR ou Flash Player. Un composant peut choisir d'obtenir la référence ou la copie de l'objet en définissant le mode de transfert du presse-papiers approprié lors de l'accès aux données de ce format.

Remarque : les formats standard étant toujours convertis en formats natifs lorsque les données sont collées ou glissées (AIR uniquement) hors d'une application prise en charge, la valeur du paramètre serializable n'affecte pas la disponibilité des données aux formats standard pour les applications non AIR ou non Flash Player.

Pour différer le rendu des données pour un format, utilisez plutôt la méthode setDataHandler(). Si les méthodes setData() et setDataHandler() sont toutes deux utilisées pour ajouter une représentation de données avec le même nom de format, la fonction du gestionnaire n'est jamais appelée.

Paramètres

format:String — Format des données.
 
data:Object — Informations à ajouter.
 
serializable:Boolean (default = true) — Définissez true pour les objets qui ne peuvent pas être sérialisés (ni désérialisés).

Valeur renvoyée
Booleantrue si les données ont bien été définies ; false dans le cas contraire. Dans Flash Player, renvoie false lorsque format est un membre non pris en charge de ClipboardFormats. (Flash Player ne prend pas en charge ClipboardFormats.URL_FORMAT, ClipboardFormats.FILE_LIST_FORMAT et ClipboardFormats.BITMAP_FORMAT ).

Valeur émise
IllegalOperationError — L'objet Clipboard demandé n'est plus dans le domaine (AIR uniquement).
 
SecurityError — La lecture ou l'écriture dans le presse-papiers n'est plus autorisée dans ce contexte. Dans Flash Player, l'appel de cette méthode n'aboutit que lors du traitement d'un événement utilisateur (pression de touche ou clic de souris, par exemple). Dans AIR, cette restriction s'applique uniquement au contenu s'exécutant hors du sandbox de sécurité de l'application.
 
TypeError format ou data est null.

Voir aussi


Exemple

L'exemple suivant ajoute du contenu dans le presse-papiers du système aux formats texte et HTML :
import flash.desktop.ClipboardFormats;
 
 var htmlString:String = "<html><body>Body content</body></html>";
 Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, urlString);
 Clipboard.generalClipboard.setData(ClipboardFormats.HTML_FORMAT, urlString);
setDataHandler()méthode 
public function setDataHandler(format:String, handler:Function, serializable:Boolean = true):Boolean

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.0

Ajoute une référence à une fonction de gestionnaire qui produit les données pour le format spécifié à la demande. Utilisez cette méthode pour différer la création ou le rendu des données jusqu'à ce qu'elles soient réellement accédées. Dans Flash Player, un événement utilisateur (pression de touche ou clic de souris, par exemple) est requis avant d'utiliser setDataHandler(). Dans AIR, cette restriction s'applique uniquement au contenu s'exécutant hors du sandbox de sécurité de l'application.

La fonction du gestionnaire doit renvoyer le type de données approprié pour le format spécifié :

FormatType renvoyé
ClipboardFormats.TEXT_FORMAT Chaîne
ClipboardFormats.HTML_FORMAT Chaîne
ClipboardFormats.URL_FORMAT Chaîne (AIR uniquement)
ClipboardFormats.RICH_TEXT_FORMAT ByteArray
ClipboardFormats.BITMAP_FORMAT BitmapData (AIR uniquement)
ClipboardFormats.FILE_LIST_FORMAT Tableau de File (AIR uniquement)
Nom de format personnaliséNon Void

La fonction de gestionnaire n'est appelée que lorsque les données au format spécifié sont lues, et seulement à ce moment-là. Notez que les données sous-jacentes peuvent changer entre le moment où le gestionnaire est ajouté et le moment où les données sont lues, sauf si votre application prend des mesures pour protéger les données. Le comportement qui se produit lorsque les données du presse-papier représentées par une fonction du gestionnaire sont lues plusieurs fois n'est pas garanti. Flash Player ou AIR peut renvoyer les données produites par le premier appel de la fonction ou rappeler la fonction. Ne comptez pas sur ces comportements.

Pour ajouter directement des données dans cet objet Clipboard, utilisez plutôt la méthode setData(). Si les méthodes setData() et setDataHandler() sont toutes deux appelées par le même nom de format, la fonction du gestionnaire n'est jamais appelée.

Paramètres

format:String — Fonction qui renvoie les données à transférer.
 
handler:Function — Format des données.
 
serializable:Boolean (default = true) — Spécifiez true si l'objet renvoyé par handler peut être sérialisé (et désérialisé).

Valeur renvoyée
Booleantrue si le gestionnaire a bien été défini ; false dans le cas contraire.

Valeur émise
TypeError format ou handler est null.
 
IllegalOperationError — L'objet Clipboard demandé n'est plus dans le domaine (AIR uniquement).
 
SecurityError — La lecture ou l'écriture dans le presse-papiers n'est plus autorisée dans ce contexte. Dans Flash Player, l'appel de cette méthode n'aboutit que lors du traitement d'un événement utilisateur (pression de touche ou clic de souris, par exemple). Dans AIR, cette restriction s'applique uniquement au contenu s'exécutant hors du sandbox de sécurité de l'application.

Voir aussi


Exemple

L'exemple suivant ajoute un nombre aléatoire dans le presse-papiers du système par l'intermédiaire d'une fonction de données différée :
import flash.desktop.ClipboardFormats;
 
 Clipboard.generalClipboard.setDataHandler(ClipboardFormats.TEXT_FORMAT, randomNumberGenerator);

 public function randomNumberGenerator():String{
     return Math.random().toString();
 }
Exemples Utilisation des exemples
ClipboardExample.as

L'exemple suivant utilise la classe ClipboardExample pour copier une chaîne d'une variable à l'autre via le presse-papiers du système. Pour ce faire, procédez comme suit :
  1. Ecrivez les données, dans ce cas une chaîne, dans Clipboard.generalClipboard.
  2. Lisez le contenu du presse-papiers dans Clipboard.generalClipboard.
package
{
    import flash.display.Sprite;
    import flash.desktop.Clipboard;
    import flash.desktop.ClipboardFormats;
    import flash.desktop.ClipboardTransferMode;

    public class ClipboardExample extends Sprite
    {
        public function ClipboardExample()
        {
            var sally:String = "Sally";
            var person:String;
            
            copy(sally);
            person = paste();
            trace(person); //traces: "Sally"
        }

        private function copy(text:String):void{
            Clipboard.generalClipboard.clear();
            Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, text);
        }
        
        private function paste():String{
            if(Clipboard.generalClipboard.hasFormat(ClipboardFormats.TEXT_FORMAT)){
                return String(Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT));
            } else {return null;}
        }
        
    }
}