3

ストーリー: ターゲット OS 用の webview/組み込みブラウザーを使用して、多くのプラットフォームにデプロイしたいゲームを開発しています。一度書いて、何度もデプロイしてください;-)

ゲーム自体は、HTML5/CSS3 と JavaScript を使用して開発されており、Windows や MacOsX などのフラッシュをサポートするプラットフォーム用に少しフラッシュを使用しています。HTML5 オーディオ タグはさまざまなプラットフォームで動作する可能性があり、フラッシュに比べて多くの機能がないため、フラッシュ ファイルはオーディオのみに使用されます。モバイル プラットフォームでは、オーディオ タグに戻ります。

とにかく、コードを圧縮し、リソース/アセットのパスをローカルファイルシステムに変更/マップできる「コンパイラ」を作成しました。これは、インターネットにアクセスする必要なく、HTML/etc で作成されたゲームやその他のアプリを展開し、それらを単一のパッケージに結合できるようにするためです。すべての JavaScript は縮小され、CSS といくつかの小さな画像を含む HTML ファイルに「埋め込まれます」。しかし、これは Flash/SWF ファイルでは実行できません (と思いますか?)。

これは私の質問です 。Firefox、Safari、Opera、Chrome、Internet Explorer 9 などの「実際の」デスクトップ ブラウザでゲームのローカル バージョンをテストしました。Flash は、Chrome を除くすべてのブラウザで動作します。

しかし、IE9の組み込みバージョン(TEmbeddedWBを使用したDelphi実行可能ファイル)にロードすると、フラッシュファイルがロードされません。ゾーン マッピング セキュリティを設定するコードをいくつか見つけましたが、機能していないようです。

  var 
   sUrl : string;
   sw : WideString;
.....
.....
  sUrl:='file:///C:\mygame\mygame.html';
  sw:=WideString( sUrl );
  if( embeddedWB.SecurityManager.SetZoneMapping(URLZONE_LOCAL_MACHINE, PWideChar( @sw ),SZM_CREATE) = S_OK ) then
   showMessage( 'OK' )
  else showMessage( 'NOT SET' );  
  embeddedWB.Go( sUrl );

.....

[OK] のメッセージ ボックスが表示され、ドキュメントが読み込まれますが、フラッシュは表示されません (音も出ません)。

質問:何が問題なのですか?なぜ機能しないのですか?これを解決する方法を知っている人はいますか?

ご参考までに:

  • IE9が実行されていることをテストしました
  • フラッシュ ファイルは Security.allowDomain( "*" ); を使用します。
  • SWF 用のセキュリティ ポリシー xml ファイル (crossdomain.xml) を作成しました。

crossdomain.xml:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="all" />
  <allow-access-from domain="*" />
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>    

返信ありがとうございます。ご不明な点がございましたら、お気軽にお問い合わせください。

4

1 に答える 1

1

今年の初めに、ローカルのフラッシュ ファイルの読み込みを禁止するように Chrome が変更されたと聞いています。(なぜローカルファイルだけがセキュリティ リスクになるのか理解できませんが、Web ベースのファイルはそうではありません...)

ここで、このトピックに関連する私の質問に対するコメントを参照してください: Detect Chrome as browser associated with html files in Windows。そのうちの 1 人は、ローカルのフラッシュ ファイルが IE でも問題になる可能性があると述べています。

私たちは、アプリケーションでローカルのフラッシュ ファイルを使用しないことに決めました.xc

編集: Chrome のバグ レポートへのリンクは次のとおりです: http://code.google.com/p/chromium/issues/detail?id=140755。きれいな状況のようには聞こえません。

更新: Chrome で Techsmith の Camtasia のプレーヤーで MP4 を再生しようとすると、以下のメッセージが表示されました。これは、上で説明した動作の確認です。

機能が無効になっているというチョメメッセージ

于 2012-10-22T23:43:00.517 に答える