Följande snabbstartartiklar hos Adobe Developer Connection innehåller korta förklaringar och kodexempel på hur du använder dra och släpp i ett AIR-program:
API:et för dra och släpp innehåller följande klasser.
Paket
|
Klasser
|
flash.desktop
|
Konstanterna som används med API:et för dra och släpp definieras i följande klasser:
|
flash.events
|
NativeDragEvent
|
Gestfaser för dra och släpp
Dra och släpp-gesten har tre faser:
-
Initiering
-
En användare initierar en dra och släpp-åtgärd genom att dra från en komponent, eller ett objekt i en komponent, samtidigt som han eller hon håller ned musknappen.
Komponenten som utgör källan för objektet som dras betecknas vanligtvis som draginitieraren och skickar händelserna
nativeDragStart
och
nativeDragComplete
. Ett Adobe AIR-program startar en dra-åtgärd genom att anropa metoden
NativeDragManager.doDrag()
som svar på en
mouseDown
- eller
mouseMove
-händelse.
Om dra-åtgärden påbörjas utanför ett AIR-program finns det inget initieringsobjekt som skickar
nativeDragStart
- eller
nativeDragComplete
-händelser.
-
Dra
-
När användaren håller ned musknappen flyttas musmarkören till en annan komponent, till ett program eller till skrivbordet.
Så länge dragningen pågår skickar initieringsobjektet
nativeDragUpdate
-händelserna. (Den här händelsen skickas emellertid inte i AIR för Linux.) När användaren flyttar musen över ett möjligt släppmål i ett AIR-program skickar släppmålet en
nativeDragEnter
-händelse. Händelsehanteraren kan granska händelseobjektet för att ta reda på om de data som dras är tillgängliga i ett format som accepteras på målet och, om så är fallet, låta användare släppa data på det genom att anropa metoden
NativeDragManager.acceptDragDrop()
.
Så länge dragningsgesten finns kvar över ett interaktivt objekt skickar objektet
nativeDragOver
-händelser. När dragningsgesten lämnar det interaktiva objektet skickas en
nativeDragExit
-händelse.
-
Släppa
-
Användaren släpper musknappen över ett möjligt släppmål.
Om målet är ett AIR-program eller en AIR-komponent kommer målobjektet att skicka en
nativeDragDrop
-händelse. Händelsehanteraren kan få tillgång till den överförda datan från händelseobjektet. Om målet finns utanför AIR hanterar operativsystemet eller andra programhanterare släppningen. I båda fallen skickar initieringsobjektet en
nativeDragComplete
-händelse (om dragningen börjar från AIR).
Klassen NativeDragManager kontrollerar både indragnings- och utdragningsgester. Alla medlemmar i klassen NativeDragManager är statiska, så du ska inte skapa en instans av den här klassen.
Objektet Clipboard
Data som dras in till eller ut från ett program eller en komponent som finns i ett Clipboard-objekt. Ett enda Clipboard-objekt kan göra olika representationer tillgängliga av samma information så att chanserna ökar att ett annat program kan förstå och använda dessa data. En bild kan till exempel inkluderas som bilddata, ett serialiserat Bitmap-objekt och som en fil. Återgivningen av data i ett format kan skjutas upp till en återgivningsfunktion som inte anropas förrän informationen läses.
När en dragningsgest har startat kan objektet Clipboard bara nås inifrån en händelsehanterare för händelserna
nativeDragEnter
,
nativeDragOver
och
nativeDragDrop
. När dragningsgesten är färdig kan Clipboard-objektet inte längre läsas eller återanvändas.
Ett programobjekt kan överföras som en referens och som ett serialiserat objekt. Referenser är endast giltiga inom originalprogrammet. Serialiserade objekt kan överföras mellan AIR-program, men kan bara användas med objekt som förblir giltiga när det serialiseras och deserialiseras. Objekt som serialiseras konverteras till Action Message Format för ActionScript 3 (AMF3), ett strängbaserat dataöverföringsformat.
Arbeta med Flex-ramverket
I de flesta fall är det bättre att använda API:et för dra och släpp i Adobe® Flex™ när du bygger Flex-program. Flex-ramverket har motsvarande funktioner när ett Flex-program körs i AIR (det använder AIR NativeDragManager internt). Flex upprätthåller också begränsade funktioner när ett program eller en komponent körs i den mer restriktiva webbläsarmiljön. AIR-klasser kan inte användas i komponenter eller program som körs utanför AIR-körningsversionen.
|
|
|