Pakket | flash.desktop |
Klasse | public class NativeDragManager |
Overerving | NativeDragManager Object |
Runtimeversies: | AIR 1.0 |
De volgende soorten gegevens kunnen worden overgedragen:
- Bitmaps
- Bestanden
- Tekst
- URL-tekenreeksen
- Objecten met serienummering
- Objectreferenties (alleen geldig binnen de brontoepassing)
Opmerking: alle leden van NativeDragManager zijn statisch. Een instantie van deze klasse hoeft niet worden gecreëerd.
Een bewerking voor slepen en neerzetten is een beweging in de gebruikersinterface die begint wanneer de gebruiker op een zichtbaar item klikt en dit naar een andere plaats sleept. Tijdens de sleepbeweging verzenden interactieve objecten in het weergaveoverzicht native sleepgebeurtenissen naarmate de handeling zich over het AIR-toepassingsvenster beweegt. Handlers voor deze gebeurtenissen kunnen de methoden van de klasse NativeDragManager aanroepen om aan te geven of een gesleept item op een object kan worden neergezet. Als reactie hierop wijzigt de NativeDragManager de muisaanwijzer om feedback aan de gebruiker te geven.
AIR-profielondersteuning: deze functie wordt niet ondersteund op AIR for TV-apparaten. De functie wordt ook niet ondersteund op mobiele apparaten. Met de eigenschap NativeDragManager.isSupported
kunt u testen of deze functie tijdens runtime wordt ondersteund. Zie AIR-profielondersteuning voor meer informatie over API-ondersteuning voor meerdere profielen.
Sleepacties
Bewegingen voor slepen en neerzetten worden doorgaans gebruikt voor drie soorten bewerkingen, die acties worden genoemd. Aangezien de betekenis van deze handelingen afhankelijk is van de toepassingscontext, stelt de runtime voor deze handelingen geen specifiek gedrag in. Een goede implementatie van de handelingen verbetert echter de gebruikerservaring in uw toepassing.
De mogelijke handelingen zijn:
- Copy - Er wordt een kopie van de gegevens gemaakt, waarbij het origineel onaangeroerd blijft. (Kopieer het oorspronkelijke object zelf in plaats van de verwijzing naar dit object als u objecten binnen een toepassing sleept.)
- Move - De gegevens worden verplaatst van de oorspronkelijke context naar de context die door het doel van de neerzetbewerking wordt gedefinieerd, zoals wanneer u een item van de ene naar de andere lijst verplaatst.
- Link - Er wordt een verwijzing of snelkoppeling naar de oorspronkelijke gegevens gemaakt en het item blijft in zijn oorspronkelijke context staan.
U kunt de toegestane handelingen voor een sleepbeweging instellen door een parameter allowedActions
bij te sluiten in de oproep NativeDragManager.doDrag()
waarmee de sleepbewerking wordt gestart. Alle handelingen zijn toegestaan als er geen parameter allowedActions
is opgegeven. Mogelijke doelen voor sleepbewerkingen kunnen controleren welke handelingen zijn toegestaan met de eigenschap allowedActions
van een object NativeDragEvent, en mogen geen neerzethandeling accepteren waarin alleen niet-compatibele handelingen zijn toegestaan (dit wordt echter niet door de runtime afgedwongen).
Als een doel voor neerzetten maar één actie implementeert, kan het object de eigenschap dropAction
van de NativeDragManager in de handlers instellen voor zowel de nativeDragEnter
- als de nativeDragOver
-gebeurtenis. Door de eigenschap vóór het neerzetten in te stellen, kan de sleepmanager de muisaanwijzer zo bijwerken dat deze de ondersteunde actie aangeeft en wordt voorkomen dat een gebruiker met behulp van optietoetsen een niet-compatibele actie kiest. Als de opgegeven actie een ongeldige actie is, wordt het neerzetten niet toegestaan, zelfs niet als het doel de methode acceptDrop()
aanroept.
Een mogelijk doel voor een neerzetbewerking moet de gekozen handeling opgeven door de eigenschap NativeDragManager.dropAction
in te stellen als antwoord op de gebeurtenis nativeDragDrop
wanneer een neerzethandeling wordt geaccepteerd. Deze handeling wordt aan het initiërende weergaveobject in de gebeurtenis nativeDragComplete
gerapporteerd. Als het doel voor de neerzetbewerking geen actie heeft ingesteld, wordt een standaardactie gekozen uit de lijst met toegestane acties. Hierbij wordt deze volgorde gehanteerd: copy, move, link. Het initiërende object is verantwoordelijk voor het bijwerken van zijn interne staat als antwoord op de gekozen handeling.
Tekenreeksconstanten voor de namen van de handelingen worden gedefinieerd in de klasse NativeDragActions.
Volgorde van gebeurtenissen
Een sleepbeweging wordt gestart door de methode NativeDragManager.doDrag()
op te roepen binnen een gebeurtenishandler mouseDown
of mouseMove
en gebruikt de volgende volgorde van gebeurtenissen als antwoord op gebruikershandelingen:
- de gebeurtenis
nativeDragStart
- WanneerNativeDragManager.doDrag()
wordt aangeroepen, wordt het interactieve object dat als een parameter aan de methode is doorgegeven, het initiatorobject en verzendt het eennativeDragStart
-gebeurtenis. - de gebeurtenis
nativeDragUpdate
- Tijdens de sleepbewerking zal het initiatorobject voortdurendnativeDragUpdate
-gebeurtenissen verzenden. - de gebeurtenissen
nativeDragEnter
,nativeDragOver
- Wanneer een sleepbeweging boven een interactief object beweegt, verzendt dat object eennativeDragEnter
-gebeurtenis. Terwijl de sleepbeweging boven het interactieve object blijft, verzendt dit object voortdurendnativeDragOver
-gebeurtenissen. Als antwoord op elk van deze gebeurtenissen moet een object dat dient als mogelijk doel voor een neerzetbewerking de eigenschappen van de gebeurtenis controleren om na te gaan of het de neerzethandeling kan accepteren. Als de gegevensindeling en de toegestane handelingen geschikt zijn, moet de gebeurtenishandler voor deze gebeurtenissenNativeDragManager.acceptDrop()
aanroepen, waarbij een verwijzing naar het weergaveobject dat zal dienen als doel van de sleepbeweging wordt doorgegeven (doorgaans is dit het object dat denativeDragEnter
- ofnativeDragOver
-gebeurtenis heeft verzonden). De gebruiker kan het gesleepte item vervolgens op het doel neerzetten. - de gebeurtenis
nativeDragExit
- Wanneer een sleepbeweging een interactief object verlaat, verzendt het object eennativeDragExit
-gebeurtenis. Als het object door een eerdere aanroep van de methodeNativeDragManager.acceptDrop()
was aangeduid als het doel van de sleepbeweging, is deze aanroep niet meer geldig en moetacceptDrop()
opnieuw worden aangeroepen als de beweging het interactieve object opnieuw binnengaat. - de gebeurtenis
nativeDragDrop
- Het doelweergaveobject verzendt een gebeurtenisnativeDragDrop
wanneer de gebruiker de muisknop boven het object loslaat. De handler voor deze gebeurtenis heeft toegang tot de gegevens in de eigenschaptransferable
van het gebeurtenisobject en moet de eigenschapNativeDragManager.dropAction
instellen om te signaleren welke handeling door het initiatorobject moet worden uitgevoerd. -
nativeDragComplete
- Wanneer de gebruiker de muisknop aan het einde van een sleepbeweging loslaat, verzendt het initiatorobject eennativeDragComplete
-gebeurtenis (ongeacht of het neerzetten werd voltooid of niet). De handler voor deze gebeurtenis kan de eigenschapdropAction
van het gebeurtenisobject controleren om te bepalen welke aanpassing aan de interne gegevensstatus er eventueel nodig is, zoals het verwijderen van een item dat uit een lijst werd gesleept. AlsdropAction
NativeDragActions.NONE
is, is het gesleepte item niet op een geschikt doel neergezet.
Bewegingen tussen toepassingen
Wanneer een sleepbeweging een AIR-toepassingsvenster binnengaat vanuit een niet-AIR-toepassing, is er geen initiatorobject om de nativeDragStart
- of nativeDragComplete
-gebeurtenis te verzenden. Voor het overige zullen de gebeurtenissen die tijdens de beweging worden verzonden hetzelfde patroon volgen als bij een beweging die binnen dezelfde AIR-toepassing begint en eindigt.
Wanneer een sleepbeweging een AIR-toepassingsvenster verlaat, is er geen doelobject om de nativeDragEnter
-, nativeDragOver
- of nativeDragDrop
-gebeurtenis te verzenden. Het initiatorobject verzendt wel nog een nativeDragComplete
-gebeurtenis, die de sleephandeling meldt die door het native besturingssysteem is ingesteld (of none
als het neerzetten niet werd geaccepteerd).
Wanneer een sleepbeweging van de ene naar de andere AIR-toepassing beweegt, verzenden de initiator- en doelweergaveobjecten zoals gewoonlijk gebeurtenissen binnen de eigen afzonderlijke toepassingen.
Gegevensoverdracht
De gegevens die tijdens een beweging voor slepen en neerzetten werden overgedragen worden in een klembordobject ingesloten. Dit gegevensobject wordt aan de sleepbewerking toegevoegd met de methode NativeDragManager.doDrag()
, die die sleepbeweging start. Mogelijke doelen voor neerzetten hebben toegang tot het klembordobject via de eigenschap clipboard
van het native drag-gebeurtenisobject. Wanneer de sleepbewerking is gestart, kan het klembordobject alleen in de gebeurtenishandler van een NativeDragEvent worden benaderd. Alle andere pogingen om toegang te krijgen tot het object, genereren een runtime-fout.
Beveiligingsoverwegingen
De beveiligingssandboxen van de initiatorobjecten en de mogelijke doelobjecten bepalen hoe de gegevens die worden gesleept kunnen worden benaderd. Als beide objecten zich in dezelfde sandbox bevinden, kunnen de gegevens vanuit elk object NativeDragEvent worden benaderd. Als de initiator- en doelobjecten zich echter in verschillende sandboxen bevinden, kunnen de gegevens enkel worden benaderd in de doelsandbox binnen de gebeurtenishandler voor de gebeurtenis nativeDragDrop
. Andere native gebeurtenishandlers voor slepen hebben nog steeds toegang tot het klembordobject waarnaar in de eigenschap clipboard
van de gebeurtenis wordt verwezen om te bepalen welke gegevensindelingen beschikbaar zijn, maar het aanroepen van de methode clipboard.getData()
genereert een beveiligingsfout.
Verwante API-elementen
flash.desktop.NativeDragActions
flash.desktop.NativeDragOptions
flash.desktop.Clipboard
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
dragInitiator : InteractiveObject [statisch] [alleen-lezen]
Het interactieve object dat is doorgegeven aan de aanroep NativeDragManager.doDrag() die de sleepbewerking heeft geïnitieerd. | NativeDragManager | ||
dropAction : String [statisch]
De sleephandeling die door het doel voor neerzetten wordt opgegeven. | NativeDragManager | ||
isDragging : Boolean [statisch] [alleen-lezen]
Meldt of er momenteel een sleephandeling wordt uitgevoerd. | NativeDragManager | ||
isSupported : Boolean [statisch] [alleen-lezen]
De eigenschap isSupported wordt ingesteld op true als de NativeDragManager-klasse op het huidige platform wordt ondersteund. Als dit niet het geval is, wordt de eigenschap ingesteld op false. | NativeDragManager |
Methode | Gedefinieerd door | ||
---|---|---|---|
[statisch]
Meldt het NativeDragManager-object dat het opgegeven interactieve doelobject een neerzetbewerking kan accepteren die overeenstemt met de huidige sleepgebeurtenis. | NativeDragManager | ||
doDrag(dragInitiator:InteractiveObject, clipboard:Clipboard, dragImage:BitmapData = null, offset:Point = null, allowedActions:NativeDragOptions = null):void [statisch]
Start een bewerking voor slepen en neerzetten. | NativeDragManager | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object |
dragInitiator | eigenschap |
dragInitiator:InteractiveObject
[alleen-lezen] Runtimeversies: | AIR 1.0 |
Het interactieve object dat is doorgegeven aan de aanroep NativeDragManager.doDrag()
die de sleepbewerking heeft geïnitieerd.
Implementatie
public static function get dragInitiator():InteractiveObject
dropAction | eigenschap |
dropAction:String
Runtimeversies: | AIR 1.0 |
De sleephandeling die door het doel voor neerzetten wordt opgegeven.
De eigenschap dropAction
moet in de handler voor de nativeDragDrop
-gebeurtenis worden ingesteld. Als dropAction
niet is ingesteld vóór de nativeDragComplete
, stelt de NativeDragManager de waarde in met de eerst toegestane actie in de lijst. copy, move of link (in deze volgorde).
Implementatie
public static function get dropAction():String
public static function set dropAction(value:String):void
Verwante API-elementen
isDragging | eigenschap |
isSupported | eigenschap |
isSupported:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
De eigenschap isSupported
wordt ingesteld op true
als de NativeDragManager-klasse op het huidige platform wordt ondersteund. Als dit niet het geval is, wordt de eigenschap ingesteld op false
.
Implementatie
public static function get isSupported():Boolean
acceptDragDrop | () | methode |
public static function acceptDragDrop(target:InteractiveObject):void
Runtimeversies: | AIR 1.0 |
Meldt het NativeDragManager-object dat het opgegeven interactieve doelobject een neerzetbewerking kan accepteren die overeenstemt met de huidige sleepgebeurtenis.
Deze methode moet alleen worden aangeroepen als er op het opgegeven doelobject een nativeDragDrop
-handler aanwezig is die minstens een van de gegevensindelingen in het gesleepte item en minstens een van de toegestane handelingen kan afhandelen.
Deze functie kan alleen worden aangeroepen binnen een nativeDragEnter
- of nativeDragOver
-gebeurtenishandler.
Parameters
target:InteractiveObject |
doDrag | () | methode |
public static function doDrag(dragInitiator:InteractiveObject, clipboard:Clipboard, dragImage:BitmapData = null, offset:Point = null, allowedActions:NativeDragOptions = null):void
Runtimeversies: | AIR 1.0 |
Start een bewerking voor slepen en neerzetten.
Een sleephandeling beginnen:
- Maak een nieuw klembordobject.
- Voeg de gegevens toe die in een of meer indelingen moeten worden overgedragen.
- Maak eventueel een object BitmapData dat dient als proxyafbeelding tijdens het slepen.
- Maak eventueel een object NativeDragOptions om de toegestane handelingen in deze bewerking te beperken. (IAls de parameter
allowedActions
null
blijft, zijn alle acties toegestaan.) - Roep
NativeDragManager.doDrag()
aan.
Het initiatorobject verzendt een nativeDragStart
-gebeurtenis nadat deze methode is aangeroepen, nativeDragStart
-gebeurtenissen terwijl het slepen gaande is en een nativeDragComplete
-gebeurtenis wanneer de gebruiker de muisknop loslaat om de sleepbeweging te beëindigen. De handler voor de gebeurtenis nativeDragComplete
kan de eigenschap dropAction
van de gebeurtenis controleren om te bepalen of de bewerking voor slepen en neerzetten met succes is voltooid. Als dropAction
NativeDragActions.NONE
is, is het gesleepte item niet op een geschikt doel neergezet.
Deze methode kan alleen vanuit een mouseDown
- of mouseMove
-gebeurtenishandler worden aangeroepen. (Als de functie wordt aangeroepen als antwoord op een mouseMove
-gebeurtenis, moet de muisknop zijn ingedrukt.)
Parameters
dragInitiator:InteractiveObject — Gewoonlijk is dit het object van waaruit de sleepbeweging werd gestart. Ontvangt de nativeDragStart - en nativeDragComplete -gebeurtenissen.
| |
clipboard:Clipboard — Het containerobject voor gegevens die worden gesleept.
| |
dragImage:BitmapData (default = null ) — Een optionele proxyafbeelding die tijdens de sleepbeweging onder de muisaanwijzer wordt weergegeven. Als null , wordt geen afbeelding weergegeven.
| |
offset:Point (default = null ) — De verschuiving tussen de muis-hotspot en de linkerbovenhoek van de gesleepte afbeelding. Bij negatieve coördinaten wordt de afbeelding naar boven en naar links ten opzichte van de hotspot verplaatst. Als null , wordt de linkerbovenhoek van de sleepafbeelding op de muis-hotspot weergegeven.
| |
allowedActions:NativeDragOptions (default = null ) — Beperkt de handelingen voor slepen en neerzetten die voor deze bewerking zijn toegestaan. Als de waarde null is, zijn alle handelingen toegestaan.
|
Verwante API-elementen
Wed Jun 13 2018, 11:42 AM Z