- クリックが、ボタンを離しません。
- ボタンを押したままカーソルを外側に移動します。
- ボタンを外側に放します。
- 戻ってもう一度クリックしてください。
アップイベントなしで2つのダウンイベントが発生します。
ドラッグアンドドロップのよりよい解決策は、MOUSE_MOVE
イベントとイベントハンドラチェックのbuttonDown
プロパティを聞くことです。移動中にボタンが押されている場合はtrue、そうでない場合はfalseです。
EDIT:フラッシュウィンドウの外にボタンを放してもステージの場合、アップイベントが発生します。だから、この段階では動作しますが、MOUSE_MOVE
とbuttonDown
を使用しているタイマーの代わりに、私にはうまく見えます。あなたは以下のコードを自分でチェックすることができます。
public class StageEventTest extends Sprite
{
public function StageEventTest()
{
stage.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onUp);
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
}
private function onDown(evt:MouseEvent):void {
trace("down");
}
private function onUp(evt:MouseEvent):void {
trace("up");
}
private function onMove(evt:MouseEvent):void {
trace("move", evt.buttonDown);
}
}
ありがとうございました。 MOUSE_UPを外部から送信する動作が 'ステージ'に固有のものであることはわかりませんでした。 – Tim
イベントリスナを 'stage'に追加すると、この問題が緩和されると思います。 'MOUSE_UP'を聞いて私の解決策は動作しますか? – Tim
通常の表示オブジェクトで確認しました。ステージで確認する必要があります。 – taskinoor