0

フラッシュファイルの埋め込みを行うページが持つjavascriptへの外部インターフェイス呼び出しからURLを取得しながら、「navigatetoURL」を使用してブラウザを別のWebページにリダイレクトする単純なフラッシュオブジェクトを作成しました。

私はすべてをうまく構築することができ、私が作成したhtmlページ(swfobject.embedSWFを使用してフラッシュファイルを埋め込む)は正常に実行され、ブラウザーをリダイレクトします。ただし、すべてが機能するために必要なファイル(.swfファイル、swfobject.js、およびフラッシュオブジェクトを埋め込むhtmlファイル)を移動すると、Webページはリダイレクトされなくなります。フラッシュオブジェクトのように見える空白だけが表示され、何もリダイレクトされません。

これを修正するために欠けているコンパイルオプションはFlashdevelopにありますか?

これがactionscript3のコードです。

package 
{
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.net.navigateToURL;
 import flash.net.URLRequest;
 import flash.net.URLVariables;
 import flash.external.ExternalInterface;

public class FlashTest extends Sprite
{
 public function FlashTest()
 {
    var url:String = ExternalInterface.call("GetURL");
    var hash:String = ExternalInterface.call("GetHash");
    var new_url:String = url + hash;
    var request:URLRequest = new URLRequest(new_url);
    navigateToURL(request, "_self");

 }
}
}

HTMLコード:

<html>
<head>

<script src='js/swfobject.js' type='text/javascript'></script>
<script type='text/javascript'>
swfobject.embedSWF('Flashtest.swf', 'altContent', '100%', '100%', '10.0.0');
function GetURL()
{
   return 'http://www.cnn.com';
}

function GetHash()
{
  return '?hash=2398asb9s8234';
}

</script>
</head>
<body>
<div id='altContent'>
<h1>Flash_test</h1>
<p>Alternative content</p>
<p><a href='http://www.adobe.com/go/getflashplayer'><img 
src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' 
alt='Get Adobe Flash player' /></a></p>
</div>
</body>
</html>
4

2 に答える 2

0

これは実際には Flash Player のセキュリティの問題です。ファイルを bin フォルダーから移動してローカルで実行すると、それらは機能しなくなります。

flashdevelop でプロジェクトを作成するたびに、「bin」フォルダが Flash Player の例外リストに追加されます。ファイルを別のフォルダーに移動すると、ファイルが機能しなくなり、ブラウザーで html を開くと空白のページが表示されます。

解決策は、Flash Player のセキュリティ構成ファイルを手動で変更し、新しいパスを追加するか、http: //www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.htmlにアクセスすることです。 グローバル セキュリティ設定 > をクリックします。常に許可 > ロケーションの編集 > 場所の追加 > ファイルが配置されている新しいパスを参照します。

于 2010-12-16T00:10:37.257 に答える
0

実際、swf が HTML DOM に追加される前、および/または DOM の準備が整う前に、swf が開始されて困っていました。ExternalInterface.call および javascript isReady に関するアドビ自身の記事をご覧ください。allowScriptAccess パラメータも見てみましょう。

<script type="text/javascript">
   var so = new SWFObject("movie.swf", "mymovie", "400", "200", "8", "#336699");
   so.addVariable("allowScriptAccess", "always");
   so.write("flashcontent");
</script>
于 2010-10-24T22:17:12.863 に答える