在 TW3CustomGameApplication 中重新绘制和调整大小?
Repaint AND resize in TW3CustomGameApplication?
短信版本 2.1.2.3592
当应用程序已被浏览器调整大小时(在 TW3CustomGameApplication 中),我该如何重绘或调用 PaintView 方法?
我正在使用 GameView.Width 和 GameView.Height 属性来确定我的应用程序中很多东西的尺寸。当应用程序大小改变时,我需要重绘或重绘
看起来没有要覆盖的调整大小事件。
问题
1.) 如何捕获调整大小事件?
2.) 如何重绘?
我不太熟悉 TW3CustomGameApplication 的内部结构 class,但在任何时候都应该可以为 JavaScript 端发生的每个事件添加专用的事件处理程序.
例如,您可以使用如下代码挂钩基础 canvas 元素的调整大小事件:
GameView.Context.Handle.addEventListener('resize', @ResizeEvent);
ResizeEvent 看起来像
procedure TYourClass.ResizeEvent(Event: JEvent);
begin
// handle resizing
end;
或者,您也可以使用以下代码挂钩全局 window 调整大小:
Window.addEventListener('resize', @ResizeEvent);
如果您有固定尺寸 canvas 并想根据 window 尺寸手动调整它,这将很有用。
由于这会挂钩底层的 W3C 低级 API,您可能需要添加单元 W3C。HTML5 和 W3C.DOM。
使用底层低级 API 的优势在于 W3C 和其他方面的良好文档/规范,例如:
- http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-registration
- https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
- https://dom.spec.whatwg.org/#introduction-to-dom-events
- ...
这种方法的缺点是你需要自己做所有事情(重新发明轮子)。
对于小型应用程序或 RAD 工作流程,我肯定会建议坚持使用 TW3CustomGameApplication 提供的代码,但对于大型项目,更深入地研究可能更有意义。
短信版本 2.1.2.3592
当应用程序已被浏览器调整大小时(在 TW3CustomGameApplication 中),我该如何重绘或调用 PaintView 方法?
我正在使用 GameView.Width 和 GameView.Height 属性来确定我的应用程序中很多东西的尺寸。当应用程序大小改变时,我需要重绘或重绘
看起来没有要覆盖的调整大小事件。
问题
1.) 如何捕获调整大小事件?
2.) 如何重绘?
我不太熟悉 TW3CustomGameApplication 的内部结构 class,但在任何时候都应该可以为 JavaScript 端发生的每个事件添加专用的事件处理程序.
例如,您可以使用如下代码挂钩基础 canvas 元素的调整大小事件:
GameView.Context.Handle.addEventListener('resize', @ResizeEvent);
ResizeEvent 看起来像
procedure TYourClass.ResizeEvent(Event: JEvent);
begin
// handle resizing
end;
或者,您也可以使用以下代码挂钩全局 window 调整大小:
Window.addEventListener('resize', @ResizeEvent);
如果您有固定尺寸 canvas 并想根据 window 尺寸手动调整它,这将很有用。
由于这会挂钩底层的 W3C 低级 API,您可能需要添加单元 W3C。HTML5 和 W3C.DOM。
使用底层低级 API 的优势在于 W3C 和其他方面的良好文档/规范,例如:
- http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-registration
- https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
- https://dom.spec.whatwg.org/#introduction-to-dom-events
- ...
这种方法的缺点是你需要自己做所有事情(重新发明轮子)。
对于小型应用程序或 RAD 工作流程,我肯定会建议坚持使用 TW3CustomGameApplication 提供的代码,但对于大型项目,更深入地研究可能更有意义。