a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 辦公 > Flash > 正文

flash as3.0 跨域的解決辦法

2020-07-17 13:13:22
字體:
供稿:網(wǎng)友
    Flash跨域問題相信不是所有人都可以遇到,如果你在本地發(fā)布,或者說直接Ctrl+Enter在FlashIDE中預(yù)覽,是不會(huì)遇到跨域問題的,當(dāng)然,跨域有個(gè)前提,那就是Flash不是完全獨(dú)立的,與外界要做一些通信和交互,如果你的Flash是完全獨(dú)立的文件,沒有和外界發(fā)生任何交互和數(shù)據(jù)通信的話,那么你可以不考慮跨域問題,因?yàn)檫@也不存在跨域問題。什么是跨域?    跨域簡單的說就是訪問其他域名的文件或資源,比如a.com的Flash去訪問b.com的資源,那么就會(huì)引起跨域的問題,因?yàn)閍.com和b.com不是同一個(gè)域名。為什么有跨域問題?    其實(shí)不僅僅是Flash,Javascript等一些腳本也有跨域的問題,這個(gè)主要是自身的安全機(jī)制所決定的,因?yàn)榭缬蛟L問一些文件或資源有一定的危險(xiǎn)性,他超過了網(wǎng)站自身的范圍,對于站外的資源無法審核其安全性,在網(wǎng)絡(luò)病毒木馬日益猖獗的今天,跨域限制訪問是其安全策略的一個(gè)重要解決手段。跨域有什么問題?    跨域的問題有很多,最直接的就是所訪問的文件被限制了,這樣一來,你的Flash就不能正常工作了,所以是讓人很頭疼的一件事情。現(xiàn)在的Flash已經(jīng)不僅僅是作為一個(gè)動(dòng)畫了,更多的有了數(shù)據(jù)交互,所以和外界的通信來作為一個(gè)互動(dòng)性比較強(qiáng)的媒介來展現(xiàn),跨域也是其中必須解決的一個(gè)問題。恩,那也許有人說了,既然有跨域的問題,那我把資源都放在同一個(gè)域名下不就可以了?恩,的確可以這樣做,但是有時(shí)候我們也會(huì)遇到訪問外部資源的情況,而且在一個(gè)比較正規(guī)的項(xiàng)目中,F(xiàn)lash和Html往往是分開放的,很多公司也是這樣,為了便于維護(hù)和管理,所以跨域的問題就容易出現(xiàn)。1、Flash自身的安全機(jī)制設(shè)置:     Flash中,在IDE運(yùn)行是沒有任何安全限制的,但是發(fā)布出去的話,就會(huì)有不少限制,F(xiàn)lash有2中發(fā)布方式,一個(gè)是僅訪問網(wǎng)絡(luò),一個(gè)是僅訪問本地,大家可以在文件-發(fā)布設(shè)置-Flash選項(xiàng)卡中看到,注意必須是在Flash文件有效時(shí)才會(huì)有哦,如果當(dāng)前編輯的是as文件是木有這個(gè)選擇菜單的:     這里就已經(jīng)限制了Flash的安全級別,如果是只訪問本地,那么Flash中所有的對Web的訪問都將禁止,而只訪問網(wǎng)絡(luò)的話,對本地的文件訪問都將禁止,所以大家根據(jù)實(shí)際的用途來選擇,如果你希望你的Flash放到Web上,那么就選擇只訪問網(wǎng)絡(luò),這樣的話你測試就務(wù)必放在WebService中測試了,本地運(yùn)行就會(huì)出現(xiàn)各種問題(如果有數(shù)據(jù)通信的話),例如:測試URLhttp://127.0.0.1/123.swf。2、ActionScript代碼設(shè)置:    AS2寫法:
復(fù)制代碼
代碼如下:
System.security.allowDomain("*");//針對不同http資源System.security.allowInsecureDomain("*");//針對需要安全驗(yàn)證的資源,比如https
    AS3寫法:
復(fù)制代碼
代碼如下:
flash.system.Security.allowDomain("*");flash.system.Security.allowInsecureDomain("*");
    上面就是嚴(yán)格的寫法,AS3還好說,大家要注意一下AS2,AS2是木有flash.system這個(gè)包的,但是你import flash.system并不會(huì)報(bào)錯(cuò),所以如果你把AS3的代碼復(fù)制進(jìn)去運(yùn)行雖然一切正常,但是實(shí)際是木有任何效果的。一定要注意!上面的代碼就是說允許Flash去訪問任何URL資源,如果只想訪問特定的URl,就把*改成該URL即可,如果多個(gè)URl,就用逗號分隔就可以了,注意allowInsecureDomain是允許訪問帶驗(yàn)證的URL資源,比如https打頭的,如果你訪問的只是普通http的話就不需要了。3、html的設(shè)置:
    如果你需要和頁面的JS通信,那么html里就必須有這樣一個(gè)參數(shù):
復(fù)制代碼
代碼如下:
<param name="allowScriptAccess" value="always" />
    參數(shù)always表示始終允許腳本訪問,如果是never,就表示始終不允許。4、加載外部資源:    如果你要讀取一個(gè)外部文件,比如swf,picture,mp3等等,那么就需要一個(gè)跨域策略文件(crossdomain.xml),這個(gè)其實(shí)就是一個(gè)xml文件,具體內(nèi)容是:
復(fù)制代碼
代碼如下:
<?xml version="1.0"?><cross-domain-policy> <allow-access-from domain="www.explorechn.com" /> <allow-access-from domain="explorechn.com" /> <allow-access-from domain="223.4.119.191" /></cross-domain-policy>
    這就是跨域策略文件,allow-access-from domain表示允許訪問的URl,如果有多個(gè)依次添加,如果允許所有就一個(gè) allow-access-from domain = "*"就可以了。需要說明一下這個(gè)文件該怎么用,如果你的Flash在a.com下,你需要訪問b.com的資源,那么把這個(gè)xml放在b.com的根目錄就可以自動(dòng)訪問了,當(dāng)然,你也可以訪問其他目錄的策略文件。
復(fù)制代碼
代碼如下:
flash.system.Security.loadPolicyFile(URL:String);
    通過這個(gè)loadPolicyFile就可以主動(dòng)去加載一個(gè)安全策略文件了,注意上面是AS3的寫法,AS2不一樣哦,參考上面的寫法。5、各個(gè)瀏覽器的跨域問題:    IE就不說了,這個(gè)基本沒啥問題,包括Flash自己生成的Html就對IE的支持做的很好,這里就說說Chrome和FF的問題:對于FLash,IE是認(rèn)object標(biāo)簽的,但是FF和Chrome是認(rèn)embed標(biāo)簽的,所以這個(gè)很重要,如果在調(diào)試的時(shí)候,發(fā)現(xiàn)firebug等工具提示"...... is not a Function",我們就要從以下地方查找原因:    1、addCallback是否成功注冊    2、allowScriptAccess是否允許always,默認(rèn)不允許    3、Flash是否完全加載完畢    一般來說,第三點(diǎn)是我們最容易遇到的,如果你的Flash沒有加載完畢就去調(diào)用函數(shù)的話,是找不到這個(gè)函數(shù)的。    這里需要注意另外一個(gè)錯(cuò)誤提示,就是"Error calling method on NPObject",如果出現(xiàn)這個(gè)錯(cuò)誤,就要小心了:    1、安全策略問題,請參考上面所有的解決方案    2、自身函數(shù)錯(cuò)誤
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品久久久久久吹潮 | 亚洲一区日本 | av免费在线播放 | 日日摸夜夜添夜夜添亚洲女人 | 一区二区久久 | 亚洲va中文字幕 | 久草久草久草 | 欧美视频一区 | 亚洲精品乱码久久久久久9色 | 天天射射天天 | 亚州中文| 午夜亚洲电影 | 欧美激情在线观看 | 欧美成人在线免费视频 | 91精品国产自产精品男人的天堂 | 天天操天天射综合 | 999成人网 | 免费一级淫片 | 国产精品久久久久久久久 | 欧美午夜一区二区三区免费大片 | 韩日一区| 欧美久久久久久 | 四虎com| a毛片毛片av永久免费 | 国产精品自产av一区二区三区 | ririsao亚洲国产中文 | 日本aⅴ免费视频一区二区三区 | 国产一区二区毛片 | 精品一区二区三区免费 | 国产精品高潮呻吟 | jizz日本人| 亚洲一区二区三区 | 欧美黑人xx | 91精品国产一区二区三区蜜臀 | 免费激情小视频 | 日韩视频中文字幕 | 成人av教育 | 一区二区亚洲 | 欧美一区二区三区免费 | 国产91成人video | 毛片免费观看网址 |