隨筆-295  評論-26  文章-1  trackbacks-0

          允許Flash跨域加載數(shù)據(jù)

          Flash 文檔可通過使用以下某種數(shù)據(jù)加載調(diào)用方法從外部源加載數(shù)據(jù):XML.load()XML.sendAndLoad()LoadVars.load()LoadVars.sendAndLoad()loadVariables()loadVariablesNum()、MovieClip.loadVariables()XMLSocket.connect() 和 Macromedia Flash Remoting (NetServices.createGatewayConnection)。另外,SWF 文件可以在運行時導入運行時共享庫 (RSL) 或另一個 SWF 文件中定義的資源。默認情況下,數(shù)據(jù)或 RSL 必須與加載該外部數(shù)據(jù)或媒體的 SWF 文件駐留在同一個域中。

          若要使運行時共享庫中的數(shù)據(jù)和資源可用于其它域中的 SWF 文件,應使用跨域策略文件。跨域策略文件是一個 XML 文件,該文件提供的方法可以使服務器指示其數(shù)據(jù)和文檔可用于從某些域或所有域提供的 SWF 文件。服務器的策略文件指定的域所提供的所有 SWF 文件都將被允許訪問該服務器中的數(shù)據(jù)、資源或 RSL。

          如果您加載外部數(shù)據(jù),即使不想將任何文件移植到 Flash Player 7 中,也應創(chuàng)建策略文件。如果您使用 RSL,并且調(diào)用或被調(diào)用文件是以 Flash Player 7 為目標播放器發(fā)布的,則應創(chuàng)建策略文件。

          允許跨域數(shù)據(jù)加載

          當 Flash 文檔試圖訪問另一個域中的數(shù)據(jù)時,F(xiàn)lash Player 將自動試圖從該域加載策略文件。如果試圖訪問數(shù)據(jù)的 Flash 文檔所在的域包括在該策略文件中,則數(shù)據(jù)將自動成為可訪問數(shù)據(jù)。

          策略文件必須命名為 crossdomain.xml,并且可以駐留在服務器的根目錄和其它目錄之中,該服務器提供具有其它 ActionScript 的數(shù)據(jù)。只有在通過 HTTP、HTTPS 或 FTP 進行通信的服務器上,策略文件才起作用。策略文件特定于它所駐留的服務器的端口和協(xié)議。

          例如,位于 https://www.macromedia.com:8080/crossdomain.xml 的策略文件只適用于在端口 8080 通過 HTTPS 對 www.macromedia.com 進行的數(shù)據(jù)加載調(diào)用。

          此規(guī)則的例外情況是,使用 XMLSocket 對象連接到另一個域中的套接字服務器。如果是這種情況,運行于與套接字服務器所在的同一個域中端口 80 上的 HTTP 服務器必須提供該方法調(diào)用的策略文件。

          XML 策略文件包含單個 <cross-domain-policy> 標簽,該標簽又包含零個或多個 <allow-access-from> 標簽。每個 <allow-access-from> 標簽包含一個屬性 domain,該屬性指定一個確切的 IP 地址、一個確切的域或一個通配符域(任何域)。通配符域由單個星號 (*)(匹配所有域和所有 IP 地址)或后接后綴的星號(只匹配那些以指定后綴結尾的域)表示。后綴必須以點開頭。但是,帶有后綴的通配符域可以匹配那些只包含后綴但不包含前導點的域。例如,cenfun.com 可以看作是 *.cenfun.com 的一部分。IP 域規(guī)范中不允許使用通配符。

          如果您指定了一個 IP 地址,則將只向使用 IP 語法從該 IP 地址(例如 http://65.57.83.12/flashmovie.swf)加載的 SWF 文件授予訪問權限,而不向使用域名語法加載的 SWF 文件授予訪問權限。Flash Player 不執(zhí)行 DNS 解析。

          下面的示例顯示一個策略文件,該策略文件允許從 cenfun.com 上的 Flash 文檔訪問來自 cenfun.com、www.friendOfcenfun.com、*.cenfun.com 和 105.216.0.40 的 Flash 文檔:

          <?xml version="1.0"?>
          <!-- http://www.cenfun.com/crossdomain.xml -->
          <cross-domain-policy>
          <allow-access-from domain="www.friendOfcenfun.com" />
          <allow-access-from domain="*.cenfun.com" />
          <allow-access-from domain="105.216.0.40" />
          </cross-domain-policy>
          

          您也可以允許訪問來自任何域的文檔,如下面的示例所示:(http://www.cenfun.com/crossdomain.xml )

          								<?xml version="1.0"?>
          <!-- http://www.cenfun.com/crossdomain.xml -->
          <cross-domain-policy>
          <allow-access-from domain="*" />
          </cross-domain-policy>
          						

          每個 <allow-access-from> 標簽還具有可選的 secure 屬性。secure 屬性默認為 true。如果您的策略文件在 HTTPS 服務器上,并且要允許 HTTP 服務器上的 SWF 文件從 HTTPS 服務器加載數(shù)據(jù),則可以將此屬性設置為 false

          secure 屬性設置為 false 可能會危及 HTTPS 提供的安全性。

          如果您正在下載來自 HTTPS 服務器的 SWF 文件,而加載它的 SWF 文件在 HTTP 服務器上,則您需要為 <allow-access-from> 標簽添加 secure="false" 屬性,如下面的代碼所示:

          <allow-access-from domain="www.cenfun.com" secure="false" />
          

          不包含任何 <allow-access-from> 標簽的策略文件相當于服務器上沒有策略。



          大盤預測 國富論
          posted on 2008-02-28 14:50 華夢行 閱讀(2399) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 松滋市| 正宁县| 鄄城县| 鄂托克前旗| 盐津县| 三台县| 岱山县| 无极县| 眉山市| 淮南市| 鄂尔多斯市| 镇雄县| 武强县| 西峡县| 迭部县| 静安区| 曲周县| 长子县| 五大连池市| 泰安市| 仁化县| 安阳市| 泰顺县| 萝北县| 富川| 隆子县| 新野县| 建昌县| 鄂尔多斯市| 东乌| 宁南县| 澄迈县| 昌乐县| 太原市| 宜章县| SHOW| 遂昌县| 达孜县| 门头沟区| 汤原县| 冷水江市|