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