メイン コーダーズルーム【スクリプト系】 [AS2] スケールされたステージ上の ComboBox スクローラーの不具合 | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
うじゅ | Åê¹ÆNo.46942 投稿日時: 2011-1-31 11:28 |
半人前 居住地: 投稿: 31
使用環境:
WinXP MX Pro2004, Flash8 |
[AS2] スケールされたステージ上の ComboBox スクローラーの不具合 Flash8 で作業しています。
スケールされたステージ上のコンボボックスをドロップダウンした状態でスクロールバーを操作すると、範囲外をクリックされた際の動作が実行され、ドロップダウンリストが閉じられてしまう現象に遭遇しました。 550×400の新規ファイルにComboBoxを追加して、以下のコードをタイムラインにペーストした状態で再現します。
ステージをスケールする前は正常な動作をしますが、ステージをスケールするとスクロールバーが入力を受け付けなくなります。 この現象の回避方法はあるのでしょうか? よろしくお願いします。
|
うじゅ | Åê¹ÆNo.46944 投稿日時: 2011-1-31 14:06 |
半人前 居住地: 投稿: 31
使用環境:
WinXP MX Pro2004, Flash8 |
Re: [AS2] スケールされたステージ上の ComboBox スクローラーの不具合 並行して調査していました。これで解決するのかどうかはまだ判断できませんが、mx.managers.PopUpManager をいじることで、正常な振る舞いをするようでした。
mx.managers.PopUpManager の onMouseDown 内で MovieClip::hitTest() により矩形範囲内判定しているところを、別のやり方にしてみました。
これは MovieClip.hitTest() のバグということなのでしょうか?
|
うじゅ | Åê¹ÆNo.46952 投稿日時: 2011-2-1 17:29 |
半人前 居住地: 投稿: 31
使用環境:
WinXP MX Pro2004, Flash8 |
Re: [AS2] スケールされたステージ上の ComboBox スクローラーの不具合 その後 MovieClip.hitTest() をテストしてみたところ、どうやら _root のローカル座標を渡すと正しい結果を返すような感じでした。
PopUpManager のハック処理を localToGlobal しないで以下のようにしても正常に動作するようでした。
※変数「root」は _lockroot = true の時を考慮してのものかと推測しますが、こちらのテストはしていません。 マニュアルには下記のように書かれていました。 ここで言う「グローバル座標空間」は、localToGlobal を適用した座標を意味するものでは無いか、嘘かと思います。 引用: パラメータ : x: Number はステージ上のヒット領域の x 座標、 今回はとりあえず、より確実な localToGlobal を通した座標同士で比較する方法で PopUpManager に対するハック処理を行い、対処しておこうと思います。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |