2
displayObject.hitTest(stage.mouseX, stage.mouseY, true)
是測試鼠標過度一個顯示對象的方式。如果我的電影以100%的比例顯示,這將起作用。但是,如果最大化我的瀏覽器窗口,以便Flash電影更改縮放比例,那麼這一切都會發生。
有沒有人有辦法解決這個問題?
非常感謝。
displayObject.hitTest(stage.mouseX, stage.mouseY, true)
是測試鼠標過度一個顯示對象的方式。如果我的電影以100%的比例顯示,這將起作用。但是,如果最大化我的瀏覽器窗口,以便Flash電影更改縮放比例,那麼這一切都會發生。
有沒有人有辦法解決這個問題?
非常感謝。
我通常使用:
stage.addEventListener(MouseEvent.MOUSE_OVER, functionName);
但是,如果你有使用則hitTest方法,可能比你想看看從全局轉換您的點到本地影片剪輯座標具體原因。縮放MovieClip後,它的x-y座標不再以1對1映射到舞臺座標。但是,你可以使Flash找出哪個座標你所談論的使用:
yourMovieClip.globalToLocal(yourTestPoint)); // [x=-10, y=0]
這裏是所有文件的相關鏈接...
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html
您可能還需要看看與hitTestPoint做同樣事情的「hitTestObject()」方法,只使用整個對象...沒有點!
希望這有助於。
感謝您的回答。正如你所說,問題是當電影放大時(在最大化的瀏覽器窗口中說),我最外面的影片剪輯的座標與舞臺的座標不匹配。因此,看起來與文檔相反,我需要使用我最外面的DisplayObject的座標空間作爲命中測試,如下所示: var point:Point = new Point(e.stageX,e.stageY); point = outerMostDisplayObject.globalToLocal(point); if(hitArea.hitTestPoint(point.x,point.y,true)){} – tarling 2010-10-21 08:52:51
在這種情況下,文檔顯然是錯誤的。 x,y位於* root *座標空間中,NOT * Stage *! – 2015-04-13 16:11:04