Tips: イベント関連


Drag&Dropがうまく機能しない(AIR β3)

AIR β3でDrag&Dropがうまく機能しない。以下の現象を確認してます。
・ドラッグ時のイメージが正しく描画されない
・ドロップ時のマウスの座標が正しく取得できない

このソースコードをβ2/β3のそれぞれの環境でコンパイル/実行して確かめてみてください。

アプリケーションを起動すると以下のウィンドウが現れますので、左のAIRのイメージをDrag&Dropしてみてください。赤い枠はドロップ時の単なる目安で、背景が白い領域のどこにでもドロップできます。


もしかしたら、単に自分がインストールを何かしくってるだけ?それともMacの環境だけで起きる問題?試された方はぜひ実行環境と実行した結果をコメントしていただければと思います。よろしくです。

【追記 2007.12.19】
その後の調査で無事問題を解決できました。(^_^)

>・ドラッグ時のイメージが正しく描画されない
Beta2と違い、drag proxyのサイズをちゃんと指定しなければダメでした。
また、proxyのAlpha値はbitmapの方で設定してあげないとうまく行きませんでした。
これはバグ?かな。

>・ドロップ時のマウスの座標が正しく取れない
Beta3からは、mouseX, mouseYはドラッグ開始地点をドラッグ中は保持するようです。
なので、マウスカーソルの位置はevent.stageX, event.stageYで取らないとダメですね。

一応、これでBeta2/Beta3でもちゃんと動くコードになりました。
ただ、Beta3では細かい違いがまだあります。

・ドロップできない領域にある時のマウスカーソルがノーマルのまま
・ドロップできる領域でも下に何かオブジェクトがあるとマウスカーソルがノーマルに戻る

あと、マウスカーソルのイメージもBeta2/Beta3で変わってます。自分はBeta2の方が好みだったな。

最後に、Beta2/Beta3どちらの環境でも正しく動作するソースコードはこちらになります。