Paket | flash.desktop |
Klass | public class NativeDragManager |
Arv | NativeDragManager Object |
Körningsmiljöversioner: | AIR 1.0 |
Följande datatyper kan överföras:
- Bitmappar
- Filer
- Text
- URL-strängar
- Serialiserade objekt
- Objektreferenser (endast giltiga inom originalprogrammet)
Obs! Alla NativeDragManager-medlemmar är statiska. Du behöver inte skapa någon instans av den här klassen.
En dra och släpp-åtgärd är en gränssnittsgest, som börjar med att användaren klickar på ett synligt objekt och sedan drar det till en annan plats. När objektet dras skickar interaktiva objekt i visningslistan inbyggda draghändelser efterhand som objektet dras i AIR-programmets fönster. Hanterare för de här händelserna kan anropa metoderna i NativeDragManager-klassen för att ange när ett objekt som dras kan släppas på ett objekt. Som svar ändras musmarkörens utseende av NativeDragManager för att tala om för användaren vad som händer.
Stöd för AIR-profiler: Den här funktionen stöds inte på enheter med AIR for TV. Den stöds inte heller på alla mobilenheter. Du kan testa stödet vid körning med egenskapen NativeDragManager.isSupported
. På sidan om stöd för AIR-profiler hittar du mer information om API-stöd för flera profiler.
Dragåtgärder
Dra och släpp-gester används oftast för tre sorters åtgärder, som kallas händelser. Eftersom innebörden i de här åtgärderna beror på programsammanhanget tvingas inte något särskilt åtgärdsbeteende fram av körningen. Om åtgärderna implementeras korrekt upplever användaren programmet på ett ännu mer positivt sätt.
Möjliga åtgärder är:
- Kopiera: en kopia av aktuella data skapas, utan att originalet påverkas. (När objekt dras inom ett program bör du vara noga och försäkra dig om att själva originalobjektet kopieras, och inte referensen till objektet.)
- Flytta: data flyttas från originalplatsen till den plats som anges av dragningen, till exempel när objekt flyttas från en lista till en annan.
- Länka: en referens eller genväg till originaldata skapas, utan att originalets placering påverkas.
De tillåtna åtgärderna kan anges för en dragningsgest genom att parametern allowedActions
anges i NativeDragManager.doDrag()
-anropet, som inleder dragningsåtgärden. Om ingen allowedActions
-parameter anges är alla åtgärder tillåtna. Möjliga mål för dragningen kan kontrollera vilka åtgärder som tillåts genom att använda egenskapen allowedActions
i ett NativeDragEvent-objekt och bör inte acceptera en släppning som bara tillåter inkompatibla åtgärder (detta kontrolleras dock inte vid körningen).
Om ett dragmål bara använder en enda händelse kan objektet ställa in dropAction
-egenskapen i NativeDragManager i hanterarna för både händelserna nativeDragEnter
och nativeDragOver
. Att ställa in egenskapen för släppningen gör att draghanteraren kan uppdatera muspekaren så att den indikerar den åtgärd som stöds och också förhindrar användaren från att välja en inkompatibel åtgärd med tangentmodifierarna. Om den angivna åtgärden inte är en av de tillåtna åtgärderna, tillåts inte släppningen, även om målet anropar acceptDrop()
-metoden.
När en släppning accepteras bör det möjliga målet ange den valda åtgärden genom att ställa in egenskapen NativeDragManager.dropAction
som svar på nativeDragDrop
-händelsen. Den här åtgärden rapporteras tillbaka till det inledande visningsobjektet i nativeDragComplete
-händelsen. Om ingen åtgärd anges av ett släppningsmål väljs en av standardåtgärderna (någon av de tillåtna åtgärderna kopiera, flytta, länka; i denna ordning). Startobjektet ansvarar för att dess interna status uppdateras som svar på den valda åtgärden.
Strängkonstanter för åtgärdsnamnen definieras i NativeDragActions-klassen.
Händelseföljd
En dragningsgest inleds med att metoden NativeDragManager.doDrag()
anropas i en mouseDown
- eller mouseMove
-händelsehanterare och fortsätter med följande händelseföljd som svar på användarens åtgärder:
-
nativeDragStart
-händelse: närNativeDragManager.doDrag()
anropas blir det InteractiveObject-objekt, som skickas som en parameter till metoden, startobjektet och skickar ennativeDragStart
-händelse. -
nativeDragUpdate
-händelse: när dragningen pågår skickar startobjektet kontinuerligtnativeDragUpdate
-händelser. -
nativeDragEnter
- ochnativeDragOver
-händelser: när en dragningsgest passerar över ett interaktivt objekt, skickar det objektet ennativeDragEnter
-händelse. Så länge dragningsgesten finns kvar över det interaktiva objektet skickar det kontinuerligtnativeDragOver
-händelser. Som svar på någon av dessa händelser bör ett objekt, som utgör ett möjligt släppningsmål, kontrollera egenskaperna hos händelseobjektet för att avgöra om släppningen kan accepteras. Om dataformatet och tillåtna åtgärder är lämpliga måste händelsehanteraren för de här händelserna anropaNativeDragManager.acceptDrop()
och skicka en referens till visningsobjektet, som fungerar som mål för dragningen (vanligen det objekt som skickadenativeDragEnter
- ellernativeDragOver
-händelsen). Användaren kan sedan släppa det dragna objektet på målplatsen. -
nativeDragExit
-händelse: när en dragningsgest passerar ut från ett interaktivt objekt skickar objektet ennativeDragExit
-händelse. Om objektet har angetts som mål för dragningen av ett tidigare anrop till metodenNativeDragManager.acceptDrop()
är det anropet inte längre giltigt, ochacceptDrop()
måste anropas igen om gesten kommer tillbaka till det interaktiva objektet. -
nativeDragDrop
-händelse: målvisningsobjektet skickar ennativeDragDrop
-händelse när användaren släpper musknappen över objektet. Hanteraren för den här händelsen kan läsa data itransferable
-egenskapen i händelseobjektet och bör ange egenskapenNativeDragManager.dropAction
för att tala om vilken åtgärd som ska utföras av startobjektet. -
nativeDragComplete
: när användaren släpper musknappen i slutet av dragningsgesten skickar startobjektet ennativeDragComplete
-händelse (vare sig släppningen slutfördes eller inte). Hanteraren för den här händelsen kan kontrollera egenskapendropAction
i händelseobjektet för att avgöra om några ändringar av dess interna datastatus bör göras (till exempel borttagning av ett bortdraget objekt från en lista). OmdropAction
ärNativeDragActions.NONE
har inte objektet släppts på något giltigt mål.
Gester mellan program
När en dragningsgest når ett fönster i ett AIR-program från ett icke-AIR-program finns det inget startobjekt som kan skicka nativeDragStart
- eller nativeDragComplete
-händelsen. De händelser som skickas under gesten följer i övrigt samma mönster som en gest som inleds och avslutas inom ett och samma AIR-program.
När en dragningsgest lämnar ett fönster i ett AIR-program finns det inget målobjekt som kan skicka nativeDragEnter
-, nativeDragOver
- eller nativeDragDrop
-händelser. Startobjektet skickar ändå en nativeDragComplete
-händelse, som rapporterar den dragningsåtgärd som angetts av operativsystemet (eller none
, om släppningen inte accepterades).
När en dragningsgest rör sig från ett AIR-program till ett annat skickar start- och målobjekten som vanligt händelser inom respektive program.
Överföring av information
De data som överförs under en dra och släpp-gest placeras i ett Clipboard-objekt. Detta dataobjekt läggs till i dragningsåtgärden med metoden NativeDragManager.doDrag()
, som inleder dragningsgesten. Möjliga släppningsmål kan läsa Clipboard-objektet via egenskapen clipboard
i det inbyggda draghändelseobjektet. När en dragningsåtgärd har inletts kan Clipboard-objektet bara nås via händelsehanteraren för ett NativeDragEvent-objekt. Ytterligare försök att komma åt objektet ger upphov till ett fel.
Säkerhetsaspekter
Säkerhetssandlådorna för startobjektet och det möjliga målobjektet avgör hur de data som dras kan läsas. Om båda objekten finns i samma sandlåda kan data nås från alla NativeDragEvent-objekt. Om start- och målobjekten däremot finns i olika sandlådor kan data bara nås i målsandlådan med händelsehanteraren för nativeDragDrop
-händelsen. Andra inbyggda händelsehanterare för dragning kan fortfarande komma åt det Clipboard-objekt som refereras i händelsens clipboard
-egenskap för att avgöra vilka dataformat som är tillgängliga, men alla anrop av metoden clipboard.getData()
genererar ett säkerhetsfel.
Relaterade API-element
flash.desktop.NativeDragActions
flash.desktop.NativeDragOptions
flash.desktop.Clipboard
Egenskap | Definieras med | ||
---|---|---|---|
constructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans. | Object | ||
dragInitiator : InteractiveObject [statisk] [skrivskyddad]
Det interaktiva objektet som skickas till det NativeDragManager.doDrag()-anrop, som startade dragningsåtgärden. | NativeDragManager | ||
dropAction : String [statisk]
Den dragningsåtgärd som anges av släppningsmålet. | NativeDragManager | ||
isDragging : Boolean [statisk] [skrivskyddad]
Rapporterar huruvida en dragningsåtgärd pågår just nu. | NativeDragManager | ||
isSupported : Boolean [statisk] [skrivskyddad]
Egenskapen isSupported är true om klassen NativeDragManager stöds på den aktuella plattformen, och i annat fall är värdet false. | NativeDragManager |
Metod | Definieras med | ||
---|---|---|---|
[statisk]
Informerar NativeDragManager-objektet om att det angivna interaktiva målobjektet kan acceptera en släppning som motsvarar den aktuella dragningshändelsen. | NativeDragManager | ||
doDrag(dragInitiator:InteractiveObject, clipboard:Clipboard, dragImage:BitmapData = null, offset:Point = null, allowedActions:NativeDragOptions = null):void [statisk]
Startar en dra och släpp-åtgärd. | NativeDragManager | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Returnerar det angivna objektets primitiva värde. | Object |
dragInitiator | egenskap |
dragInitiator:InteractiveObject
[skrivskyddad] Körningsmiljöversioner: | AIR 1.0 |
Det interaktiva objektet som skickas till det NativeDragManager.doDrag()
-anrop, som startade dragningsåtgärden.
Implementering
public static function get dragInitiator():InteractiveObject
dropAction | egenskap |
dropAction:String
Körningsmiljöversioner: | AIR 1.0 |
Den dragningsåtgärd som anges av släppningsmålet.
Egenskapen dropAction
bör anges i hanteraren för nativeDragDrop
-händelsen. Om dropAction
inte ställs in före nativeDragComplete
anger NativeDragManager värdet med den första tillåtna åtgärden av kopiera, flytta, länka (i den ordningen).
Implementering
public static function get dropAction():String
public static function set dropAction(value:String):void
Relaterade API-element
isDragging | egenskap |
isSupported | egenskap |
acceptDragDrop | () | metod |
public static function acceptDragDrop(target:InteractiveObject):void
Körningsmiljöversioner: | AIR 1.0 |
Informerar NativeDragManager-objektet om att det angivna interaktiva målobjektet kan acceptera en släppning som motsvarar den aktuella dragningshändelsen.
Den här metoden bör bara anropas om det finns en nativeDragDrop
-hanterare för det angivna målobjektet som kan hantera minst ett av dataformaten i objektet som dras och minst en av de tillåtna åtgärderna.
Den här funktionen kan bara anropas inom en nativeDragEnter
- eller nativeDragOver
-händelsehanterare.
Parametrar
target:InteractiveObject |
doDrag | () | metod |
public static function doDrag(dragInitiator:InteractiveObject, clipboard:Clipboard, dragImage:BitmapData = null, offset:Point = null, allowedActions:NativeDragOptions = null):void
Körningsmiljöversioner: | AIR 1.0 |
Startar en dra och släpp-åtgärd.
Så här startar du en dragningsåtgärd:
- Skapa ett nytt Clipboard-objekt.
- Lägg till de data som ska överföras i ett eller flera format.
- (Valfritt) Skapa ett BitmapData-objekt, som ska användas som utkastsbild under själva dragningen.
- (Valfritt) Skapa ett NativeDragOptions-objekt, som begränsar de åtgärder som är tillåtna. (Om parametern
allowedActions
lämnas somnull
är alla åtgärder tillåtna.) - Anropa
NativeDragManager.doDrag()
.
Startobjektet skickar en nativeDragStart
-händelse när den här metoden har anropats, nativeDragStart
-händelser under själva dragningen och en nativeDragComplete
-händelse när användaren avslutar dragningsgesten genom att släppa musknappen. Hanteraren för nativeDragComplete
-händelsen kan kontrollera händelsens dropAction
-egenskap för att avgöra om dra och släpp-åtgärden slutfördes korrekt. Om dropAction
är NativeDragActions.NONE
har inte objektet släppts på något giltigt mål.
Den här metoden kan bara anropas inifrån en mouseDown
- eller mouseMoved
-händelsehanterare. (Om den anropas som svar på en mouseMove
-händelse måste även musknappen vara nedtryckt.)
Parametrar
dragInitiator:InteractiveObject — Vanligtvis det objekt som dragningsgesten har startat från. Tar emot nativeDragStart - och nativeDragComplete -händelser.
| |
clipboard:Clipboard — Behållarobjektet för data som dras.
| |
dragImage:BitmapData (default = null ) — En valfri utkastsbild som visas under muspekaren under dragningen. Om värdet är null visas ingen bild.
| |
offset:Point (default = null ) — Förskjutningen mellan musens aktiva punkt och dragningsbildens övre vänstra hörn. Negativa koordinater flyttar bilden uppåt och åt vänster i förhållande till den aktiva punkten. Om värdet är null placeras dragningsbildens övre, vänstra hörn vid musens aktiva punkt.
| |
allowedActions:NativeDragOptions (default = null ) — Begränsar de dra och släpp-åtgärder som är tillåtna för åtgärden. Om värdet är null är alla åtgärder tillåtna.
|
Relaterade API-element
Tue Jun 12 2018, 01:40 PM Z