在TW3CustomGameApplication中重绘和调整大小?

时间:2016-01-05 14:20:01

标签: smart-mobile-studio

SMS版本2.1.2.3592

当浏览器调整应用程序的大小(在TW3CustomGameApplication中)时,如何进行重绘或调用PaintView方法?

我正在使用GameView.Width和GameView.Height属性来确定我的应用中很多东西的尺寸。当应用程序大小更改时,我需要重绘或重绘

看起来没有要覆盖的Resize事件。

问题

1。)如何捕获调整大小事件?

2.。)我如何重画?

1 个答案:

答案 0 :(得分:4)

我不太熟悉TW3CustomGameApplication类的内部,但在任何时候都应该可以为JavaScript端发生的每个事件添加专用的事件处理程序。

例如,您可以使用以下代码挂接基础canvas元素的resize事件:

GameView.Context.Handle.addEventListener('resize', @ResizeEvent);

ResizeEvent看起来像

procedure TYourClass.ResizeEvent(Event: JEvent);
begin
  // handle resizing
end;

或者,您也可以使用以下代码挂钩调整全局窗口:

Window.addEventListener('resize', @ResizeEvent);

如果你有一个固定尺寸的画布并希望手动根据窗口大小调整它,这将非常有用。

由于这会挂钩底层的W3C低级API,因此您可能需要添加单元W3C.HTML5和W3C.DOM。

使用底层低级API的优势在于W3C和其他人的良好文档/规范,例如:

这种方法的缺点是你需要自己做所有事情(重新发明轮子)。

对于小型应用程序或RAD工作流程,我肯定建议坚持使用TW3CustomGameApplication提供的代码,但是对于一个看起来更深入的大项目可能更有意义。