簡體   English   中英

在AS3中使用參數加載外部SWF

[英]Load external SWF with parameters in AS3

我有一個由EasyPano tourweaver軟件創建的swf文件。 outpout是一個swf文件,其中包含一些.bin文件來配置swf和其他文件,例如.jpg,.js等。 該軟件創建一個HTML文件以添加SWF文件,但我必須使用Flash和AS3加載SWF文件。 該軟件創建的HTML和JavaScript為:

 <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>

請幫我!

謝謝

答案是將URLVariables傳遞給Loader的load方法的URLRequest feed :)

例:

        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#2000以及此處 -此錯誤背后有很多原因

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM