我有一个Windows 7 Silverlight与XNA应用程序。我还使用了一个服务,它使用javascript将动态图像呈现到屏幕上。
在PC上,javascript是流畅而流畅的,我可以在图像和它们的转换之间顺利地跳跃。但是,我需要把这个功能带到手机上。
到目前为止,我已经成功地使用Silverlight中的Web浏览器控件加载我的HTML文件并执行脚本。问题是,一旦应用程序的“动态”部分启动,web控件的更新速度就不够快。而不是平滑的滑动动画的PC版本的结果,我会结巴,类似于有一个低的FPS在一个游戏。
所以,我想知道:有没有办法提高浏览器控件的更新速度?
我的另一个想法(但在实现上没有成功)是在应用程序的XNA页面中嵌入一个web浏览器,并使用XNA的更新率,这要高得多(我猜这是标准的60 fps)。然而,Silverlight web浏览器控件似乎没有更新呈现功能,I也找不到库将web浏览器嵌入到XNA应用程序本身中。
有没有人知道我如何用javascript获得动态HTML文件,使其流畅、流畅地呈现?
编辑:使用30 FPS计时器的 webBrowser.InvalidateArrange()似乎加快了浏览器刷新速度,但仍然很不稳定。如果我试图增加FPS,浏览器会恢复到慢的状态。
发布于 2012-02-18 02:54:13
使用定时器设置为17毫秒(60 FPS),我强制浏览器失效,这导致它重新绘制。除此之外,我还删除了不需要重新绘制浏览器的帧。
DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();
timer.Interval = new TimeSpan(0, 0, 0, 0, 17); // 30 FPS
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
void timer_Tick(object sender, EventArgs e)
{
if (loaded && coded && needToUpdate)
{
webBrowser.InvokeScript("setPitch", pitch.ToString());
webBrowser.InvokeScript("setHeading", heading.ToString());
Redraw();
needToUpdate = false;
}
}
void Redraw()
{
webBrowser.InvalidateMeasure();
webBrowser.InvalidateArrange();
webBrowser.Visibility = System.Windows.Visibility.Visible;
}发布于 2012-02-13 04:25:44
我猜
是标准的60 fps
标准为30 FPS
--我找不到一个库来在XNA应用程序本身中嵌入一个web浏览器。
我不认为它会有任何改进。
所以,我想知道:有什么方法可以提高浏览器控件的更新速度吗?
https://stackoverflow.com/questions/9255451
复制相似问题