AIR: 2008年11月アーカイブ

MouseWheelイベントでトラップに引っかってしもーた\(^o^)/


MouseWheelがどっちにスクロールしたかなんてのは、
MouseEvent#deltaの32ビット目を見ればわかると思って



イベントハンドラの中で、こんな風にロジック書いちゃった

if(event.delta < 0) {
     ・
     ・
     ・
} else {
     ・
     ・
     ・
}


Windows+マウスでテストしたら、ゼンゼンOKだったんだけど、

MacBookで試してみたら罠が待ち受けてた!!


MouseWheelイベントだから、当然上か下かにスクロールされたときに発生するはずじゃん



つまり、delta=0なんてありえないじゃん!!



プログラム
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" mouseWheel="trace(event.delta)">
	
</mx:WindowedApplication>


タッチパッドに指を2本添えて(←ココ重要)、適当に前後に動かす。


結果
-2
-2
0
0
0
-6
0
0
4
0
0
0
0
-5
0
0

0とかまじ自重しろ!!!


イベントハンドラの先頭に、


if(event.delta==0) return



を加えるとマウスのと同じ動きをしてくれるようになりました。






Adobe AIRでファイル名に&を含むものを.airファイルに含めると、

.airファイルをダブルクリックしてインストールしようとすると、


エラーが発生しました。

AIR ファイルが破損しているためアプリケーションをインストールできませんでした。アプリケーション作成者に問い合わせて、新しい AIR ファイルを入手してください。


ってでる。




再現の仕方

1. FlexBulderでAIRのプロジェクトを作る。

2. プロジェクト直下に"bin-release"フォルダを作成。

3. bin-release内にファイル名に&を含むものを作成。

4. リリースビルド

5. 作成された.airファイルをダブルクリック


ピクチャ 1.png


いろいろ試せば&以外でも起るかもね。

とりあえず、テキトーにぐぐっても情報出てこなかったから、日本語でこのバグの情報が出回るのこれが初めてかもね。


taiga.jpによると、Adobeにバグを報告するとTシャツが貰えるらしいので報告しとこうかな。

一昨日の[3D][Astro] 3Dの移動/回転を行列(Matrix3D)を使ってやるで、HSliderのthumbDragイベントによって、updateDisplayListが実行されてるはずなのに表示が更新されてない(´・ω・`)

まじ意味わかんねーヾ(〃>_<;〃)ノ


って思ってたら、liveDraggingっていうプロパティがあるみたい


APIリファレンスによるとー



スライダのライブドラッグを有効にするかどうかを指定します。 false の場合は、value プロパティと values プロパティが設定され、ユーザーがスライダサムのドラッグを停止したときchange イベントが送出されます。 true の場合は、value プロパティと values プロパティが設定され、ユーザーがサムを移動しているときに change イベントが継続的に送出されます。



なんでこんなプロパティあるんだろうー(´・ε・`)

停止したとき = CHANGE、移動中 = thumbDragとかでいいのに。


でも、おかげで、これをtrueにしたら、描画が反映されました。


id:keiichic++


なんでこんなの知ってるんだろう?(゜_。)?(。_゜)?

iKnow

あわせて読みたいブログパーツ
Firefox meter