0

XNAアプリケーション付きWindows Phone 7 Silverlightがあります。 私はまた、動的イメージをスクリーンにレンダリングするためにjavascriptを使用するサービスを使用しています。Windows Phone 7 Webブラウザの更新が遅すぎる

PC上では、JavaScriptは流動的でスムーズです。イメージとその遷移をスムーズに切り替えることができます。しかし、私はこの機能を電話機に持たせる必要があります。

現在のところ、SilverlightでWebブラウザコントロールを使用して、HTMLファイルを読み込んでスクリプトを実行することができました。問題は、アプリケーションの「動的」部分が起動した後、Webコントロールが十分に速く更新されないことです。 PC版の滑らかなスライディングアニメーションではなく、ゲームでFPSが低くなるのと同様に、吃音が発生します。

私は、Webブラウザコントロールの更新速度を上げる方法はありますか?

もう1つは、アプリケーションのXNAページにWebブラウザを埋め込み、XNAの更新レートを使用することです(これは実装時には成功しませんでした) 60 fps)。しかし、SilverlightのWebブラウザコントロールには、更新レンダリング機能がないようで、XNAアプリケーション自体にWebブラウザを埋め込むライブラリが見つかりません。

どのように私は動的にHTMLファイルを取得することができますか?

EDIT:30 FPSでタイマーを使用して webBrowser.InvalidateArrange()は、ブラウザの更新をスピードアップしているようだが、それはまだびくびくです。 FPSを上げようとすると、ブラウザは元に戻ります。

+0

これは、ハードウェアの問題であり、電話機のJSエンジンが遅いことがあります。あなたは、CSS変換であなたのアニメーションをやってみることができます。これは、ほとんどのモバイルデバイスで大いに役立ちます。 –

+0

私はサードパーティのjavascriptライブラリ(私のためのコントロールを提供しています)を使用しているので、JS以外のものは使用できません。 – Dragonseer

答えて

0

タイマーを17ミリ秒(60FPS)に設定すると、強制的にブラウザが無効になり、再描画されます。これに加えて、ブラウザを再描画する必要のないフレームを削除しました。

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; 
    } 
0

私は推測している標準の60 fpsの

標準は、私はXNAアプリケーション自体の内部で、Webブラウザを埋め込むためのライブラリを見つけることができない30 FPS

です。

改善が得られないと思います。

私は、 ウェブブラウザコントロールの更新速度を上げる方法はありますか? Webコントロール以外のリソースを食べるものがないことを確認してください -

  1. は、メインページ上のWebブラウザのみコントロールを持っているテストアプリケーションを作成します。
  2. アプリの動作を確認します。それはあなたのアプリケーション内の任意の他の処理を減らす十分だ場合、ユーザは、「ダイナミック」の部分
  3. を使用しながら、性能は依然として不良である場合、それはまだ許容できないカットだ場合、あなたが行うことができる唯一のことは、javascriptを自身
  4. を最適化することで機能やネイティブなものを作る。
  5. 利益!
+0

現在のところ、ブラウザアプリケーションはメインページの唯一のものです。ブラウザが起動しているときは、他の処理はありません。私はサードパーティ製のライブラリであるため、JavaScriptを最適化することはできません。私はそれを利用することはできません(Googleによるので、すでにかなり最適化されていると思います)。これは機能なので、機能をカットできません。私はネイティブを作ることはできません、リソースを持っていない/ GoogleのTOSに違反することはできません。再XNAのパフォーマンス:XNAゲームはかなり高速に更新されます。私はXNAのために構築されたWebブラウザがうまく機能すると思います。私はちょうどまだ1つを見つけていない。 – Dragonseer

+0

Googleは幅広いブラウザをターゲットにしており、WP7向けに最適化した可能性は低いです。 Webコントロールは、ホストされている場所に関係なくネイティブです。再設計/カット/最適化できない場合、あなたは破滅してしまいます。 –

関連する問題