将stage.fullScreenSourceRect,stage.displayState设置为StageDisplayState.FULL_SCREEN_INTERACTIVE时;并且renderMode到GPU,鼠标位置读取不正确。这不仅适用于mouseX和mouseY位置,而且所有与Sprite,Buttons等的鼠标交互都无法正常工作。
有人知道这个问题的解决方案吗?
我在bugbase.adobe.com报告了一个错误,但目前还没有回复。
错误ID:3486120
附有简单的示例项目。如果您也遇到此问题并且您不知道任何解决方法,请至少投票支持该错误。
感谢。 格雷格。
答案 0 :(得分:0)
有趣的错误。我想你可以通过在全屏时自己缩放和定位内容来解决这个问题。与设置fullScreenSourceRect
相比,这可能会影响性能,但至少应该有效。
示例(在文档类中使用):
protected var fakeFullScreenSourceRect:Rectangle;
public function Main() {
this.stage.scaleMode = StageScaleMode.NO_SCALE;
this.fakeFullScreenSourceRect = new Rectangle(30, 30, 400, 200);
this.stage.addEventListener(Event.RESIZE, handleResize);
}
protected function handleResize(e:Event):void {
if (this.stage.displayState == StageDisplayState.FULL_SCREEN || this.stage.displayState == StageDisplayState.FULL_SCREEN_INTERACTIVE) {
if (this.fakeFullScreenSourceRect) {
this.scaleX = this.stage.stageWidth / this.fakeFullScreenSourceRect.width;
this.scaleY = this.stage.stageHeight / this.fakeFullScreenSourceRect.height;
this.x = -this.fakeFullScreenSourceRect.x * this.scaleX;
this.y = -this.fakeFullScreenSourceRect.y * this.scaleY;
}
} else {
this.x = this.y = 0;
this.scaleX = this.scaleY = 1;
}
}