Flash 動作腳本之:了解Action Script2.0 (4)_Flash教程
推薦:Flash 動作腳本之:了解Action Script2.0 (2)AS代碼2.0:腳本編輯和調(diào)試FlashMXProfessional2004的動作腳本語言已經(jīng)升級到2.0,它的編輯和調(diào)試工具也有一些改進,下面我們就來看看動作腳本編輯器的變化
AS代碼2.0:針對Flash Player 7(2)三、SWF文件之間的跨域和子域訪問
當你開發(fā)一系列互相通訊的SWF文件時,例如,當使用loadMovie()、MovieClip.loadMovie()、 MovieClipLoader.LoadClip()命令或本地連接對象時,你可能把這些動畫文件存放在不同的域或一個超域的不同的子域中。
在針對Flash 5或更早版本的播放器發(fā)布的文件中,跨域或子域訪問不受限制。
在針對Flash 6播放器發(fā)布的文件中,你可以使用LocalConnection.allowDomain事件處理函數(shù)或System.security.allowDomain()方法來指定答應(yīng)跨域訪問(例如,讓在someOtherSite.com域的文件訪問在someSite.com域的文件),且無需用命令來答應(yīng)子域訪問(例如,在store.someSite.com子域的文件可以訪問在www.someSite.com子域的文件)。
在針對Flash 7播放器發(fā)布的文件中,SWF文件之間的訪問與早期版本有兩個方面的不同。首先,F(xiàn)lash 7播放器執(zhí)行精確域匹配而不是超域匹配規(guī)則。因此,被訪問的文件(即使是針對早期的Flash播放器版本而不是Flash 7播放器發(fā)布的文件)必須顯式指定答應(yīng)跨域或子域訪問。其次,存放在使用安全協(xié)議(HTTPS)站點中的文件,必須顯式指定答應(yīng)來自使用不安全協(xié)議(HTTP或FTP)的站點的文件的訪問。
因為Flash 7播放器執(zhí)行精確域匹配而不是超域匹配規(guī)則,假如你想要針對Flash 7播放器發(fā)布的文件能夠訪問你現(xiàn)有的腳本,你可能需要修改這些腳本。(你仍然可以針對Flash 6播放器發(fā)布修改過的文件。)
假如你在文件中使用LocalConnection.allowDomain()或System.security.allowDomain()語句,并指定答應(yīng)訪問超域站點,你必須修改你的參數(shù)來指定準確的域。下面的代碼說明你可能需要進行的修改:
// 答應(yīng)存放在www.someSite.com或store.someSite.com域的SWF文件訪問
// 存放在www.anyOldSite.com域的SWF文件中的Flash 6播放器命令
System.security.allowDomain("someSite.com");
my_lc.allowDomain = function(sendingDomain) {
return(sendingDomain=="someSite.com");
}
// 答應(yīng)針對Flash 7播放器發(fā)布的SWF文件訪問的對應(yīng)命令
System.security.allowDomain("www.someSite.com", "store.someSite.com");
my_lc.allowDomain = function(sendingDomain) {
return(sendingDomain=="www.someSite.com" ||
sendingDomain=="store.someSite.com");
}
假如你當前還沒有使用這些語句,你也可能需要添加這樣的語句。
例如,假如你的SWF文件存放在www.someSite.com域,且你想答應(yīng)存放在store.someSite.com域針對Flash 7播放器發(fā)布的SWF文件訪問,你必須給存放在www.someSite.com域的文件添加下列語句(你仍然可以針對Flash 6播放器發(fā)布存放在www.someSite.com的文件):
System.security.allowDomain("store.someSite.com");
my_lc.allowDomain = function(sendingDomain) {
return(sendingDomain=="store.someSite.com");
}
總的來說,假如你針對Flash 7播放器發(fā)布文件且符合以下條件,你可能要修改你的文件,添加或修改allowDomain語句:
�、倌憔帉懣鏢WF文件的腳本
使用loadMovie()、MovieClip.loadMovie()、MovieClipLoader.LoadClip()或本地連接對象。
�、诒徽{(diào)用的SWF文件(任何版本)不是存放在使用安全協(xié)議(HTTPS)的站點,或調(diào)用的和被調(diào)用的SWF文件都存放在使用安全協(xié)議(HTTPS)的站點。
�、跾WF文件不在相同的域
例如,一個文件在www.domain.com,另一個在store.domain.com。
為此你需要做以下修改:
①假如被調(diào)用的SWF文件是針對Flash 7播放器發(fā)布的,在被調(diào)用的SWF文件中包含System.security.allowDomain或LocalConnection.allowDomain語句,使用精確域名匹配。
②假如被調(diào)用的SWF文件是針對Flash 6播放器發(fā)布的,修改被調(diào)用的SWF文件,添加或修改System.security.allowDomain或LocalConnection.allowDomain語句,使用精確域名匹配(如本節(jié)前面的代碼所示)。你可以針對Flash 6或7播放器發(fā)布修改過的文件。
�、奂偃绫徽{(diào)用的SWF文件是針對Flash 5或以前的播放器版本發(fā)布的,針對Flash 6或7播放器發(fā)布被調(diào)用的SWF文件,添加System.security.allowDomain語句,使用精確域名匹配(如本節(jié)前面的代碼所示)。(Flash 5及以前的播放器版本不支持本地連接對象。)
分享:Flash 動作腳本之:了解Action Script2.0 (1)AS代碼2.0:新的語言元素Flash的ActionScript(簡稱AS)代碼控制是Flash實現(xiàn)交互性的重要組成部分,也是區(qū)別于其他動畫軟件的看家本領(lǐng)。今年新發(fā)布的FlashMX
- 相關(guān)鏈接:
- 教程說明:
Flash教程-Flash 動作腳本之:了解Action Script2.0 (4)
。