2012-11-06 72 views
4

我有一個由EasyPano tourweaver軟件創建的swf文件。 outpout是一個帶有一些.bin文件的swf文件,用於配置swf和其他文件,例如.jpg,.js等。 該軟件創建一個html文件來添加swf,但我必須使用flash和AS3加載swf。該軟件創建的HTML和JavaScript是:使用AS3中的參數加載外部SWF

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Mahan</title> 
</head> 
<body leftMargin="0" topMargin="0" rightMargin="0" bottomMargin="0"> 
<script type="text/javascript" src="swfobject.js"></script> 
<div id="flashcontent"> 
To view virtual tour properly, Flash Player 9.0.28 or later version is needed. 
Please download the latest version of <a href="http://www.adobe.com/go/getflashplayer" target="_blank">Flash Player</a> and install it on your computer. 
</div> 

<script type="text/javascript"> 
// <![CDATA[ 
var so = new SWFObject("twviewer.swf", "sotester", "100%", "100%", "9.0.0", "#000000"); 
so.addParam("allowNetworking", "all"); 
so.addParam("allowScriptAccess", "always"); 
so.addParam("allowFullScreen", "true"); 
so.addParam("scale", "noscale"); 
//<!-%% Share Mode %%-> 
so.addVariable("lwImg", "resources/talarmahan_1_firstpage.jpg"); 
so.addVariable("lwBgColor", "255,255,255,255"); 
so.addVariable("lwBarBgColor", "255,232,232,232"); 
so.addVariable("lwBarColor", "255,153,102,153"); 
so.addVariable("lwBarBounds", "-156,172,304,8"); 
so.addVariable("lwlocation", "4"); 
so.addVariable("lwShowLoadingPercent", "false"); 
so.addVariable("lwTextColor", "255,0,0,204"); 
so.addVariable("iniFile", "config_TalarMahan.bin"); 
so.addVariable("progressType", "0"); 
so.addVariable("swfFile", ""); 
so.addVariable("href", location.href); 
so.write("flashcontent"); 
// ]]> 
</script> 
</body> 
</html> 

請幫幫我!

感謝

回答

2

答案是使用URLVariables通過了URLRequest飼料進入裝載機的加載方法:)

例如:

 var loader:Loader = new Loader(); 
     var flashvars:URLVariables = new URLVariables() 
      flashvars["lwImg"] = "resources/talarmahan_1_firstpage.jpg"; 
      flashvars["lwBgColor"] = "255,255,255,255"; 
      flashvars["lwBarBgColor"] = "255,232,232,232"; 
      flashvars["lwBarColor"] = "255,153,102,153"; 
      flashvars["lwBarBounds"] = "-156,172,304,8"; 
      flashvars["lwlocation"] = "4"; 
      flashvars["lwShowLoadingPercent"] = "false"; 
      flashvars["lwTextColor"] = "255,0,0,204"; 
      flashvars["iniFile"] = "config_TalarMahan.bin"; 
      flashvars["progressType"] = "0"; 
      flashvars["swfFile"] = ""; 
      flashvars["href"] = this.loaderInfo.url; 
     var request:URLRequest = new URLRequest("twviewer.swf"); 
      request.data = flashvars; 
     loader.load(request); 

     addChild(loader); 

還與以下輔助方法,你可以得到主SWF參數(從它的html包裝)並將其傳遞到加載的SWF:

public function getFlashVars(li:LoaderInfo):URLVariables 
    { 
     var vars:URLVariables = new URLVariables(); 
     try 
     { 
      var params:Object = li.parameters; 
      var key:String; 
      for(key in params) 
      { 
       vars[key] = String(params[key]); 
      } 
     } 
     catch(e:Error) 
     { 
     } 
     return vars; 
    } 

然後

 var loader:Loader = new Loader(); 
     var request:URLRequest = new URLRequest("twviewer.swf"); 
      request.data = getFlashVars(this.loaderInfo); 
     loader.load(request); 

     addChild(loader); 

對於SecurityError: Error#2000here - 有此錯誤

+0

Thnaks你的答案背後的原因是多方面的。但現在我有安全錯誤:** SecurityError:錯誤#2000:沒有活動的安全上下文。** – user1802176

+0

我已經更新了問題以包含一些SO SecurityError解決方案,你檢查過它們嗎? –

+0

我無法修復它。我可以將樣品項目郵寄給您嗎?我認爲這是一個簡單的錯誤,但我無法修復它。請幫幫我。 – user1802176