(AIR のみ)
パッケージflash.desktop
クラスpublic class NativeDragManager
継承NativeDragManager Inheritance Object

ランタイムバージョン: AIR 1.0

NativeDragManager クラスは、ドラッグ & ドロップ操作を調整します。ネイティブドラッグ & ドロップ API を使用すると、ユーザーは、AIR アプリケーションとネイティブのオペレーティングシステムの間、2 つのアプリケーションの間または 1 つのアプリケーション内のコンポーネントの間でデータをドラッグできるようになります。

次の種類のデータを転送できます。

メモ : すべての NativeDragManager メンバーが静的メンバーです。このクラスのインスタンスを作成する必要はありません。

ドラッグ & ドロップ操作は、ユーザーが表示されたアイテムをクリックして別の場所にドラッグすると開始される、ユーザーインターフェイスのジェスチャです。ドラッグジェスチャを実行している間、AIR アプリケーションウィンドウ内を移動するにつれて、表示リスト上のオブジェクトによってネイティブドラッグイベントが送出されます。これらのイベントのハンドラは NativeDragManager クラスのメソッドを呼び出して、ドラッグされたアイテムをオブジェクトにドロップできるかどうかを示します。これに応答してマウスポインタが変わり、ユーザーにフィードバックが提供されます。

ドラッグアクション

通常、ドラッグ & ドロップジェスチャは、アクションと呼ばれる 3 種類の操作に使用されます。これらのアクションの意味はアプリケーションのコンテキストに応じて異なるため、ランタイムではアクションに対して特定の動作は適用されません。ただし、アクションを適切に実装すると、アプリケーションに対するユーザーの操作性が向上します。

実行可能なアクションは次のとおりです。

allowedActions パラメータを、ドラッグ操作を開始する NativeDragManager.doDrag() 呼び出しに指定することにより、実行可能なアクションをドラッグジェスチャに設定できます。allowedActions パラメータを指定しない場合は、すべてのアクションが許可されます。NativeDragEvent オブジェクトの allowedActions プロパティを使用すると、ドラッグ可能ターゲットで実行できるアクションを確認できます。また、実行できるのが互換性のないアクションのみのドロップを受け入れないようにできます(ただし、ランタイムでは適用できません)。

ドロップターゲットが単一のアクションのみを実装している場合、オブジェクトは NativeDragManager の dropAction プロパティを、nativeDragEnter イベントおよび nativeDragOver イベントの両方のハンドラで設定できます。ドロップの前にプロパティを設定することによって、ドラッグマネージャはマウスポインタを更新してサポートされるアクションを示すことができ、ユーザーが修飾キーを使用して互換性のないアクションを選択することを防止できます。指定されたアクションが実行できるアクションではない場合は、ターゲットが acceptDrop() メソッドを呼び出してもドロップは許可されません。

ドロップを受け入れる場合は、NativeDragManager.dropAction プロパティを設定することにより、ドロップ可能ターゲットが nativeDragDrop イベントに応答して選択したアクションを指定する必要があります。このアクションは、nativeDragComplete イベントで元の開始表示オブジェクトに通知されます。ドロップターゲットにアクションが設定されていない場合、許可されたアクションから copy、move、link の優先順位に従ってデフォルトのアクションが選択されます。開始オブジェクトは、選択されたアクションに応じて内部状態を更新する必要があります。

NativeDragActions クラスにアクション名のストリング定数が定義されます。

イベントの順序

NativeDragManager.doDrag() メソッド(mouseDown イベントハンドラ内または mouseMove イベントハンドラ内)を呼び出すことによりドラッグジェスチャが開始され、ユーザーの操作に応答して次のイベントシーケンスが実行されます。

アプリケーション間のジェスチャ

ドラッグジェスチャが AIR 以外のアプリケーションから AIR アプリケーションウィンドウに入った場合、nativeDragStart イベントまたは nativeDragComplete イベントを送出する開始元オブジェクトはありません。その他の点では、ジェスチャを実行中のイベントは、同じ AIR アプリケーション内で開始および終了するジェスチャと同じパターンに従って送出されます。

ドラッグジェスチャが AIR アプリケーションウィンドウの外に移動すると、nativeDragEnter イベント、nativeDragOver イベントまたは nativeDragDrop イベントを送出するターゲットオブジェクトはなくなります。開始元オブジェクトは引き続き nativeDragComplete イベントを送出し、ネイティブオペレーティングシステムによって設定されたドラッグアクションを通知します (ドロップが受け入れられなかった場合は none)。

ドラッグジェスチャがある AIR アプリケーションから別の AIR アプリケーションに移動すると、開始元オブジェクトとターゲット表示オブジェクトは、それぞれのアプリケーション内で通常と同じイベントを送出します。

情報の転送

ドラッグ & ドロップジェスチャの実行中に転送されるデータは Clipboard オブジェクトに格納されます。このデータオブジェクトは、NativeDragManager.doDrag() メソッドを使用して、ドラッグジェスチャを開始したドラッグ操作に追加されます。ドロップ可能ターゲットは、ネイティブドラッグイベントオブジェクトの clipboard プロパティを使用して Clipboard オブジェクトにアクセスできます。ドラッグ操作が一旦開始されると、Clipboard オブジェクトにアクセスできるのは NativeDragEvent のイベントハンドラだけになります。オブジェクトに対してその他のアクセスを行うと、ランタイムエラーが生成されます。

セキュリティについての考慮事項

開始元オブジェクトおよびターゲットオブジェクトのセキュリティサンドボックスに応じて、ドラッグされているデータへのアクセス方法が決まります。両方のオブジェクトが同じサンドボックス内にある場合は、すべての NativeDragEvent オブジェクトからデータにアクセスできます。一方、開始元オブジェクトとターゲットオブジェクトが異なるサンドボックス内にある場合、データにアクセスできるのは nativeDragDrop イベントのイベントハンドラ内のターゲットサンドボックスだけです。他のネイティブドラッグイベントハンドラは、イベントの clipboard プロパティで参照される Clipboard オブジェクトに引き続きアクセスし、利用可能なデータ形式を確認できますが、clipboard.getData() メソッドを呼び出すとセキュリティエラーが生成されます。

関連項目

flash.events.NativeDragEvent
flash.desktop.NativeDragActions
flash.desktop.NativeDragOptions
flash.desktop.Clipboard


パブリックプロパティ
 プロパティ定義元
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  AIR-only dragInitiator : InteractiveObject
[静的] [読み取り専用] ドラッグ操作を開始した NativeDragManager.doDrag() 呼び出しに渡されるインタラクティブオブジェクトです。
NativeDragManager
  AIR-only dropAction : String
[静的] ドロップターゲットによって指定されているドラッグアクションです。
NativeDragManager
  AIR-only isDragging : Boolean
[静的] [読み取り専用] ドラッグ操作が現在進行中かどうかを報告します。
NativeDragManager
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリックメソッド
 メソッド定義元
  
[静的] 指定されたターゲットインタラクティブオブジェクトが現在のドラッグイベントに対応するドロップを受け入れ可能であることを、NativeDragManager オブジェクトに通知します。
NativeDragManager
  
AIR-only doDrag(dragInitiator:InteractiveObject, clipboard:Clipboard, dragImage:BitmapData = null, offset:Point = null, allowedActions:NativeDragOptions = null):void
[静的] ドラッグ & ドロップ操作を開始します。
NativeDragManager
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
プロパティの詳細
AIR-only dragInitiatorプロパティ
dragInitiator:InteractiveObject  [読み取り専用]

ランタイムバージョン: AIR 1.0

ドラッグ操作を開始した NativeDragManager.doDrag() 呼び出しに渡されるインタラクティブオブジェクトです。



実装
    public static function get dragInitiator():InteractiveObject
AIR-only dropActionプロパティ 
dropAction:String

ランタイムバージョン: AIR 1.0

ドロップターゲットによって指定されているドラッグアクションです。

dropAction プロパティは、nativeDragDrop イベントのハンドラに設定する必要があります。dropActionnativeDragComplete よりも前に設定されていない場合、NativeDragManager はこの値を copy、move、link の順序のリストで最初に許可されているアクションに設定します。



実装
    public static function get dropAction():String
    public function set dropAction(value:String):void

関連項目

AIR-only isDraggingプロパティ 
isDragging:Boolean  [読み取り専用]

ランタイムバージョン: AIR 1.0

ドラッグ操作が現在進行中かどうかを報告します。



実装
    public static function get isDragging():Boolean
メソッドの詳細
AIR-only acceptDragDrop()メソッド
public static function acceptDragDrop(target:InteractiveObject):void

ランタイムバージョン: AIR 1.0

指定されたターゲットインタラクティブオブジェクトが現在のドラッグイベントに対応するドロップを受け入れ可能であることを、NativeDragManager オブジェクトに通知します。

このメソッドは、指定されたターゲットオブジェクトに、ドラッグしたアイテムの少なくとも 1 つのデータ形式および少なくとも 1 つの許可されたアクションを処理できる nativeDragDrop ハンドラがある場合にのみ呼び出す必要があります。

この機能は、nativeDragEnter イベントハンドラまたは nativeDragOver イベントハンドラ内からのみ呼び出すことができます。

パラメータ

target:InteractiveObject

AIR-only doDrag()メソッド 
public static function doDrag(dragInitiator:InteractiveObject, clipboard:Clipboard, dragImage:BitmapData = null, offset:Point = null, allowedActions:NativeDragOptions = null):void

ランタイムバージョン: AIR 1.0

ドラッグ & ドロップ操作を開始します。

ドラッグ操作を開始するには

  1. 新しい Clipboard オブジェクトを作成します。
  2. 転送するデータを 1 つ以上の形式で追加します。
  3. オプションで、ドラッグ中にプロキシイメージとして機能する BitmapData オブジェクトを作成します。
  4. オプションで、この操作で許可するアクションを制限する NativeDragOptions オブジェクトを作成します (allowedActionsnull パラメータを のままにすると、すべてのアクションが許可されます)。
  5. NativeDragManager.doDrag() () を呼び出します。

開始元オブジェクトは、このメソッドが呼び出された後に nativeDragStart イベント、ドラッグが進行中の間には nativeDragStart イベント、ユーザーがマウスボタンを離してドラッグジェスチャを終了したときに nativeDragComplete イベントを送出します。nativeDragComplete イベントのハンドラは、イベントの dropAction プロパティをチェックして、ドラッグ & ドロップ操作が正常に完了したかどうかを判断できます。dropActionNativeDragActions.NONE の場合、ドラッグしたアイテムが適切なターゲットにドロップされなかったことを示します。

このメソッドは、mouseDown イベントハンドラまたは mouseMove イベントハンドラ内からのみ呼び出すことができます(mouseMove イベントに応答して呼び出す場合は、マウスボタンも押す必要があります)。

パラメータ

dragInitiator:InteractiveObject — 通常、ドラッグジェスチャを開始したオブジェクトです。nativeDragStart イベントと nativeDragComplete イベントを受け取ります。
 
clipboard:Clipboard — ドラッグされているデータのコンテナオブジェクトです。
 
dragImage:BitmapData (default = null) — ドラッグジェスチャの実行中にマウスカーソルの下に表示される、オプションのプロキシイメージです。null の場合、プロキシイメージは表示されません。
 
offset:Point (default = null) — マウスホットスポットとドラッグイメージの左上隅の間のオフセットです。負の座標では、イメージが上方向の、ホットスポットを基準としてその左側に移動します。null の場合、ドラッグイメージの左上隅が、マウスホットスポットの位置に配置されます。
 
allowedActions:NativeDragOptions (default = null) — この操作に許可されるドラッグ & ドロップアクションを制限します。null の場合、すべてのアクションが許可されます。

関連項目





 

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/desktop/NativeDragManager.html