0

设置 stage.fullScreenSourceRect 时,stage.displayState 为 StageDisplayState.FULL_SCREEN_INTERACTIVE;和 renderMode 到 GPU,鼠标位置读取不正确。这不仅适用于 mouseX 和 mouseY 位置,而且所有与 Sprite、Button 等的鼠标交互都无法正常工作。

有人知道这个问题的解决方案吗?

我在bugbase.adobe.com上报告了一个错误,但还没有回复。

错误编号:3486120

那里附有简单的示例项目。如果您也遇到此问题并且您不知道任何解决方法,请至少为该错误投票。

谢谢。格雷格。

4

1 回答 1

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;
    }
}
于 2013-01-24T23:45:17.313 回答