2011-07-29 5 views
5

またはlocalX/localYの表示オブジェクトの座標をトレースすると、xは1で始まるのに対して、yは0から始まるのはなぜですか?ActionScript - 不正確なマウス座標ですか?

たとえば、単純な400 x 400ピクセルのスプライトを、ステージの上にマウスのローカル座標をトレースするハンドラ関数を呼び出すイベントリスナで描画しました。

最初の左上のピクセルは{x:1, y:0}を返し、最後の右下のピクセルは{x:400, y:399}を返します。 xyの両方が同じ値で開始と終了しないようにしてください。私は最初のマウス座標(0または1のどちらか)にはどちらが意味があるのか​​はわかりませんが、違いは分かりません。

[SWF(width = "1000", height = "600", backgroundColor = "0xCCCCCC")] 

import flash.display.Sprite; 
import flash.events.MouseEvent; 

var darkBlueRect:Sprite = createSprite(); 
darkBlueRect.x = 23; 
darkBlueRect.y = 42; 
addChild(darkBlueRect); 

darkBlueRect.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveEventHandler); 

function mouseMoveEventHandler(evt:MouseEvent):void 
{ 
    trace(darkBlueRect.mouseX, evt.localX, darkBlueRect.mouseY, evt.localY); 
} 

function createSprite():Sprite 
{ 
    var result:Sprite = new Sprite(); 
    result.graphics.beginFill(0x0000FF, 0.5); 
    result.graphics.drawRect(0, 0, 400, 400); 
    result.graphics.endFill(); 

    return result; 
} 
+1

良い質問です。また、 'trace(darkBlueRect.localToGlobal(new Point(evt.localX、evt.localY)));'(x = 24、y = 42) 'を返す' – shanethehat

+0

私は全く同じ結果を得ていません。スプライトの最後の座標は、必要に応じて上がっています(グローバル423/442、ローカル400/400)。また、mySprite.localXとmySprite.mouseXは同じであることに注意してください。とにかく私が見つけている唯一のエラーは、起源にあります.Xは1から0をクリックすることはできません。 –

答えて

3

レポートバグ、あなたは1を発見しました:

http://bugs.adobe.com/flashplayer/

私は、おそらくそれはとりわけスプライトに適用されるラインのための部屋を作ることだと思ったが、これらすべてのテストがない証明しましたその場合には。これは、私の意見では、バグです。ファイルして、私はそれを2番目にするか、あなたが気にすることができない場合は、私はそれを修正する必要がありますので、私はそれを提出することを知らせてください。

更新私はちょうど私がするStageScaleModeは、オブジェクトへの2~3倍にズーム、スケーリングを可能にするように設定し、MOUSE_DOWNに読ん0/0を取得しようとしました別のテストを試してみた

。明らかにやり遂げることはできません。私は最後にXで0の読みを得ましたが、その後Yは出ています。私は、この問題は、FlashがX/Yポインタの位置を数値ではなくintで返すという事実にまで及ぶと思うし、ズームインした場合に気付くように、ポインタの位置で10進数値を得ることができる。ちょうどバグのコードまたは小数点の計算方法に基づいて浮動小数点精度の問題になるか、またはズームしていないのにオブジェクトが拡大縮小されていない場合、Flashは小数点以下を切り捨ててintから外します。奇妙な行動。私はこの余分なテストの結果を追加すると思いました。

+0

私はあまりにも投票していますが、確かにバグのようです。 – shanethehat

+0

リンクをありがとう、私はバグをファイルし、あなたにリンクを送信します。私は昨日以来直面していた問題の根源だと思われるので、バグではなく、私が間違っていたことを本当に望んでいました。http://stackoverflow.com/questions/6855190/setting- x座標からマウスの位置 – TheDarkIn1978

+0

ここに報告書があります:http://bugs.adobe.com/jira/browse/ASL-230 – TheDarkIn1978

関連する問題