Referencia de ActionScript® 3.0 para la plataforma de Adobe® Flash®
Inicio  |  Ocultar lista de paquetes y clases |  Paquetes  |  Clases  |  Novedades  |  Índice  |  Apéndices  |  ¿Por qué hay texto en inglés?
Filtros: Recuperando datos del servidor...
Recuperando datos del servidor...
flash.desktop 

NativeDragManager  - AS3

Paqueteflash.desktop
Clasepublic class NativeDragManager
HerenciaNativeDragManager Inheritance Object

Versiones de motor de ejecución: AIR 1.0

La clase NativeDragManager coordina operaciones de arrastrar y soltar. Con la API nativa de arrastrar y colocar permite al usuario arrastrar elementos entre una aplicación de y el sistema operativo nativo, entre dos aplicaciones de AIR y entre componentes de una sola aplicación.

Se pueden transferir los siguientes tipo de datos:

  • Mapas de bits
  • Archivos
  • Texto
  • Cadenas URL
  • Objetos serializados
  • Referencias a objetos (sólo son válidas en la aplicación original)

Nota: todos los miembros de NativeDragManager son estáticos. No es necesario crear ninguna instancia de esta clase.

Una operación de arrastrar y colocar es una acción de interfaz de usuario que inicia con el usuario haciendo clic en un elemento visible y arrastrándolo hasta cualquier punto. Durante la acción de arrastre, los objetos interactivos de la lista de visualización distribuyen eventos NativeDragEvents a medida que la acción se desplaza por la ventana de la aplicación de AIR. Los controladores de estos eventos pueden llamar a métodos de la clase NativeDragManager para indicar si el elemento arrastrado se puede soltar en un objeto. Como respuesta, NativeDragManager cambia la posición del puntero para informar al usuario.

Compatibilidad con perfil de AIR: esta característica no se admite en dispositivos de AIR para TV. Asimismo, no se admite en todos los dispositivos móviles. Puede probar la compatibilidad en tiempo de ejecución con la propiedad NativeDragManager.isSupported. Consulte Compatibilidad con perfil de AIR para obtener información sobre la compatibilidad de la API con varios perfiles.

Acciones de arrastrar

El gesto de arrastrar y colocar suele utilizarse en tres tipos de operaciones llamadas acciones. Dado que el significado de estas opciones depende del contexto de la aplicación, el motor de ejecución no fuerza ningún comportamiento particular en lo que respecta a las acciones. Sin embargo, si se implementan las acciones, la experiencia del usuario mejora en la aplicación.

Las acciones posibles son:

  • Copy: se debe realizar una copia de los datos, sin tocar los originales. (Cuando arrastre objetos en una aplicación, debe tener cuidado para copiar el propio objeto original, no solo una referencia a él.)
  • Move: los datos deben moverse desde su contexto original al contexto definido por el destino, por ejemplo, cuando se mueve un elemento de una lista a otra.
  • Link: se debe crear una referencia o acceso directo a los datos originales sin modificar el elemento en su contexto original.

Las acciones permitidas se pueden definir en un gesto de arrastre si se proporciona un parámetro allowedActions en la llamada NativeDragManager.doDrag() que inicia la operación de arrastre. Si se proporciona el parámetro allowedActions, se permiten todas las acciones. Los posible destinos de arrastre pueden comprobar qué acciones están permitidas mediante la propiedad allowedActions de un objeto NativeDragEvent, y no debe aceptar operaciones de arrastre que acepten únicamente acciones incompatibles (aunque el motor de ejecución no fuerza esta situación).

Si un destino de una acción de soltar implementa única acción, el objeto puede establecer la propiedad dropAction de NativeDragManager en los controladores de los eventos nativeDragEnter y nativeDragOver. Si establece la propiedad antes de soltar, el gestor de la acción podrá actualizar el puntero del ratón para indicar que se admite la acción y evitar que el usuario utilice una incompatible con las teclas de modificación. Si la acción especificada no está permitida, no podrá soltar, incluso si el destino llama al método acceptDrop().

Cuando se acepta una acción de colocación, el posible destino debe indicar la acción elegida por el ajuste de la propiedad NativeDragManager.dropAction en respuesta al evento nativeDragDrop. Esta acción se registra de nuevo en el objeto de visualización inicializado del evento nativeDragComplete. Si no se define ninguna acción por el destino de colocación, se elige una acción predeterminada entre las acciones permitidas según el orden de precedencia: copy, move, link. El objeto que se inicializa es el responsable de actualizar su estado interno como respuesta a la acción elegida.

Las constantes de cadena de los nombres de acción se definen en la clase NativeDragActions.

Secuencia de eventos

El gesto de arrastre se inicia mediante una llamada al método NativeDragManager.doDrag() en un controlador de eventos mouseDown o mouseMove y continúa con al siguiente secuencia de eventos como respuesta a las acciones del usuario:

  • Evento nativeDragStart: cuando se llama a NativeDragManager.doDrag(), el objeto interactivo transferido al método como parámetro se convierte en objeto iniciador y distribuye un evento nativeDragStart.
  • Evento nativeDragUpdate: mientras el arrastre está en curso, el objeto iniciador distribuye constantemente eventos nativeDragUpdate.
  • Eventos nativeDragEnter, nativeDragOver: cuando una acción de arrastre se transfiere a un objeto InteractiveObject, dicho objeto distribuye un evento nativeDragEnter. Mientras el gesto de arrastre siga sobre el objeto interactivo, se distribuyen eventos nativeDragOver continuamente. Como respuesta a cualquiera de estos eventos, un objeto que actúe como destino potencial debe comprobar las propiedades del objeto del evento para decidir si acepta o no el arrastre. Si el formato de datos y las acciones permitidas son adecuados, el controlador de eventos de estos eventos debe llamar a NativeDragManager.acceptDrop() y transferir un objeto de visualización que sirva de destino de arrastre (normalmente, el objeto que distribuyó el evento nativeDragEnter o nativeDragOver). El usuario ahora puede arrastrar el elemento al destino.
  • Evento nativeDragExit: si un gesto de arrastre transfiere un objeto interactivo, el objeto distribuye un evento nativeDragExit. Si el objeto se ha diseñado previamente como destino de arrastre por una llamada al método NativeDragManager.acceptDrop(), la llamada deja de ser válida y es preciso llamar a acceptDrop() de nuevo si el gesto vuelve a acceder al objeto interactivo.
  • Evento nativeDragDrop: el objeto de visualización de destino distribuye un evento nativeDragDrop cuando el usuario suelta el el botón del ratón sobre el objeto. El controlador de este evento puede acceder a los datos de la propiedad transferable del objeto de evento y debe definir la propiedad NativeDragManager.dropAction para que detecte la acción que debe tomar el objeto inicializador.
  • Evento nativeDragComplete: cuando el usuario suelta el ratón al finalizar un gesto de arrastre, el objeto inicializador distribuye un evento nativeDragComplete (haya finalizado o no la operación de colocación). El controlador de este evento puede comprobar la propiedad dropAction del objeto de evento para determinar qué modificaciones se deben realizar en los datos internos (si procede), por ejemplo, eliminar un elemento arrastrado de una lista. Si dropAction es NativeDragActions.NONE, el elemento arrastrado no se ha colocado en un destino elegido.

Gestos entre aplicaciones

Cuando un gesto de arrastre entra en una ventana de la aplicación de AIR desde una ventana de aplicación distinta de AIR, no hay ningún objeto inicializador que distribuya los eventos nativeDragStart o nativeDragComplete. Los eventos distribuidos durante este gesto siguen el mismo patrón que el de los gestos que se inician y finalizan en la misma aplicación de AIR.

Cuando un gesto de arrastre abandona la ventana de la aplicación de AIR, no hay ningún objeto de destino que distribuya eventos nativeDragEnter, nativeDragOver o nativeDragDrop. El objeto inicializador sigue distribuyendo un evento nativeDragComplete que registra la acción de arrastre definida por el sistema operativo nativo (o el valor none, si no se acepta la acción de soltar).

Cuando un gesto de arrastre se desplaza entre aplicaciones de AIR, los objetos iniciador y de destino distribuyen eventos en las aplicaciones por separado, como ocurre habitualmente.

Información de transferencia

Los datos transferidos durante un gesto de arrastrar y colocar se almacenan en un objeto Clipboard. Este objeto de datos se añade a la operación de arrastre con el método NativeDragManager.doDrag() que inicia el gesto de arrastre. Los destinos potenciales de colocación pueden acceder al objeto Clipboard mediante la propiedad clipboard del objeto NativeDragEvent. Una vez iniciada una operación de arrastre, sólo se puede acceder al objeto Clipboard en el controlador de eventos de un evento NativeDragEvent. Cualquier otro intento de acceso al objeto genera un error de tiempo de ejecución.

Consideraciones de seguridad

Los entornos limitados de seguridad de los objetos iniciador y de destino potenciales determinan el modo en que se accede a los datos arrastrados. Si los dos objetos se encuentran en el mismo entorno limitado, se puede acceder a ellos desde cualquier objeto NativeDragEvent. Ahora bien, si los objetos iniciador y de destino se encuentran en entornos limitados diferentes, sólo se puede acceder a los datos en el entorno limitado de target dentro del controlador de eventos del evento nativeDragDrop. El resto de controladores de eventos de arrastre nativos pueden seguir accediendo al objeto Clipboard al que se hace referencia en la propiedad eventclipboard para determinar qué formatos de datos hay disponibles, pero al llamar al método clipboard.getData() se genera un error de seguridad.

Elementos de API relacionados



Propiedades públicas
 PropiedadDefinido por
 Inheritedconstructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
Object
      dragInitiator : InteractiveObject
[estática] [solo lectura] El objeto interactivo transferido a la llamada NativeDragManager.doDrag() que inició la operación de arrastre.
NativeDragManager
      dropAction : String
[estática] Acción de arrastre especificada por el destino de colocación.
NativeDragManager
      isDragging : Boolean
[estática] [solo lectura] Indica si hay una operación de arrastre en curso.
NativeDragManager
      isSupported : Boolean
[estática] [solo lectura] La propiedad isSupported se establece en true si la clase NativeDragManager se admite en la plataforma actual; en caso contrario, se establece en false.
NativeDragManager
Métodos públicos
 MétodoDefinido por
  
[estática] Informa al objeto NativeDragManager de que el objeto interactivo de destino especificado puede aceptar la colocación correspondiente al evento de arrastre actual.
NativeDragManager
  
    doDrag(dragInitiator:InteractiveObject, clipboard:Clipboard, dragImage:BitmapData = null, offset:Point = null, allowedActions:NativeDragOptions = null):void
[estática] Inicia una operación de arrastrar y colocar.
NativeDragManager
 Inherited
Indica si un objeto tiene definida una propiedad especificada.
Object
 Inherited
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
Object
 Inherited
Indica si existe la propiedad especificada y si es enumerable.
Object
 Inherited
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
Object
 Inherited
Devuelve la representación de cadena de este objeto, con formato según las convenciones específicas de configuración regional.
Object
 Inherited
Devuelve la representación de cadena del objeto especificado.
Object
 Inherited
Devuelve el valor simple del objeto especificado.
Object
Información sobre propiedades
    

dragInitiator

propiedad
dragInitiator:InteractiveObject  [solo lectura]

Versiones de motor de ejecución: AIR 1.0

El objeto interactivo transferido a la llamada NativeDragManager.doDrag() que inició la operación de arrastre.



Implementación
    public static function get dragInitiator():InteractiveObject
    

dropAction

propiedad 
dropAction:String

Versiones de motor de ejecución: AIR 1.0

Acción de arrastre especificada por el destino de colocación.

Se debe establecer la propiedad dropAction en el controlador del evento nativeDragDrop. Si la propiedad dropAction no se establece antes que nativeDragComplete, NativeDragManager establecerá el valor de la primera acción permitida de la lista: copy, move o link (en este orden).



Implementación
    public static function get dropAction():String
    public static function set dropAction(value:String):void

Elementos de API relacionados

    

isDragging

propiedad 
isDragging:Boolean  [solo lectura]

Versiones de motor de ejecución: AIR 1.0

Indica si hay una operación de arrastre en curso.



Implementación
    public static function get isDragging():Boolean
    

isSupported

propiedad 
isSupported:Boolean  [solo lectura]

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 2

La propiedad isSupported se establece en true si la clase NativeDragManager se admite en la plataforma actual; en caso contrario, se establece en false.



Implementación
    public static function get isSupported():Boolean
Información sobre métodos

    acceptDragDrop

()método
public static function acceptDragDrop(target:InteractiveObject):void

Versiones de motor de ejecución: AIR 1.0

Informa al objeto NativeDragManager de que el objeto interactivo de destino especificado puede aceptar la colocación correspondiente al evento de arrastre actual.

Sólo se debe llamar a este método si hay un controlador nativeDragDrop en el objeto de destino especificado que pueda, al menos, controlar uno de los formatos de datos incluidos en el elemento arrastrado y una de las acciones permitidas.

Sólo es posible llamar a esta función desde un controlador de eventos nativeDragEnter o nativeDragOver.

Parámetros

target:InteractiveObject

    doDrag

()método 
public static function doDrag(dragInitiator:InteractiveObject, clipboard:Clipboard, dragImage:BitmapData = null, offset:Point = null, allowedActions:NativeDragOptions = null):void

Versiones de motor de ejecución: AIR 1.0

Inicia una operación de arrastrar y colocar.

Para iniciar una operación de arrastre:

  1. Cree un nuevo objeto Clipboard.
  2. Añada los datos que quiera transferir en uno o varios formatos.
  3. Si lo desea, puede crear un objeto BitmapData como imagen proxy durante el arrastre.
  4. Si lo desea, puede crear un objeto NativeDragOptions para limitar las acciones permitidas en esta operación. (Si el parámetro allowedActions es null, se permiten todas las acciones.)
  5. Llame a NativeDragManager.doDrag().

El objeto iniciador distribuye el evento nativeDragStart cuando se llama a este método, eventos nativeDragStart durante el proceso de arrastre y un evento nativeDragComplete cuando el usuario suelta el ratón del botón para poner fin al gesto de arrastre. El controlador del evento nativeDragComplete puede verificar la propiedad dropAction del evento para determinar si se ha realizado correctamente la operación de arrastrar y colocar. Si dropAction es NativeDragActions.NONE, el elemento arrastrado no se ha colocado en un destino elegido.

Se puede llamar a este método únicamente desde un controlador de eventos mouseDown o mouseMove. (Si se llama como respuesta a un evento mouseMove, el botón del ratón también debe estar presionado.)

Parámetros

dragInitiator:InteractiveObject — Normalmente, el objeto desde el que se inicia el gesto de arrastre. Recibe los eventos nativeDragStart y nativeDragComplete.
 
clipboard:Clipboard — El objeto contenedor de los datos que se están arrastrando.
 
dragImage:BitmapData (default = null) — Imagen proxy opcional que aparece debajo del puntero del ratón durante el gesto de arrastre. Si el valor es null, no se muestra ninguna imagne
 
offset:Point (default = null) — Desfase entre la zona interactiva del ratón y la esquina superior izquierda de la imagen de arrastre. Las coordenadas negativas desplazan la imagen hacia arriba y hacia la izquierda en relación a la zona interactiva. Si el valor es null, la esquina superior izquierda la imagen arrastrada se coloca en la zona interactiva del ratón.
 
allowedActions:NativeDragOptions (default = null) — Limita las acciones de arrastrar y colocar permitidas en esta operación. Si el valor es null, se pueden realizar todas las acciones.

Elementos de API relacionados





[ X ]¿Por qué hay texto en inglés?
Cierto contenido de la Referencia de ActionScript 3.0 se muestra en inglés

No todo el contenido de la Referencia de ActionScript 3.0 se traduce a todos los idiomas. Si un elemento del lenguaje no se traduce, aparecerá en inglés. Por ejemplo, la clase ga.controls.HelpBox no está traducida en ningún idioma. Por lo tanto, en la versión en español de la referencia, la clase ga.controls.HelpBox aparecerá en inglés.