0

stage.fullScreenSourceRect を設定する場合、stage.displayState を StageDisplayState.FULL_SCREEN_INTERACTIVE に設定します。renderMode を GPU にすると、マウスの位置が正しく読み取られません。これは、mouseX と mouseY の位置だけでなく、スプライト、ボタンなどとのすべてのマウス インタラクションが正しく機能していません。

この問題の解決策を知っている人はいますか?

bugbase.adobe.comでバグを報告しましたが、まだ回答がありません。

バグ ID: 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 に答える