2010-07-08 29 views
0

我可以在動作腳本3中執行以下操作嗎? :
我想製作一個應用程序,通過將URLRequests添加到本地文件夾來使用Loader加載一些圖像。我可以構建應用程序並以某種方式包含此文件夾,因此當我從服務器將其發送到客戶端時,URLRequests通常在客戶端運行?此外,如果這是可能的,該文件夾可能不可查看/客戶端可訪問,但只能從它附帶的Flash應用程序? 因此,例如,如果我將其發送到客戶端,本地運行良好的這段代碼將繼續運行到它的機器。可以以某種方式將文件夾和SWF作爲一個對象發送?動作加載問題

private function clothesOn(outfit:String) { 
    var clothier:Loader = new Loader(); 
    var item:String = "clothes/" + outfit + ".gif"; 
    var getItem:URLRequest = new URLRequest(item); 
    clothier.load(getItem); 
    this.addChild(clothier); 
} 

ps:代碼來自actionscript設計模式。

+0

你的意思是一個zip文件?另外,在IDE之外進行測試。小心這一點:http://troyworks.com/blog/wp-content/uploads/2009/09/flash_publish_settings_local_playback_security_access_local_files.png – 2010-07-08 09:26:49

回答

1

沒有辦法,除非他們在flash文件自身添加爲庫資源將文件發送到客戶端。 但是,如果該文件夾是在相同的相對位置在服務器上,因爲它是你的本地計算機上,你可以指示的Flash文件,使相對於自身的所有路徑(使用基:「」 PARAM),則flash文件應該能夠找到您的圖像文件,而無需首先將它們發送到客戶端。

基礎參數是你可以在頁面中嵌入Flash文件時指定的值。在這裏看到:

http://kb2.adobe.com/cps/127/tn_12701.html

使用SWFObject,代碼會是這個樣子:

<script type="text/javascript"> 
    var params = { 
     menu: "false", 
     scale: "noScale", 
     allowFullscreen: "true", 
     allowScriptAccess: "always", 
     bgcolor: "#FFFFFF", 
     base:'.' 
    }; 
    swfobject.embedSWF("file.swf", "divID", "706", "706", "9.0.0", "swf/expressInstall.swf", null, params, null); 
</script> 

一旦這個參數是設置,您的Flash文件中的網址將被相對於文件的位置本身。因此,假設你有一個這樣的結構,你的服務器上:

-root 
    -index.html 
    -file.swf 
    -folder 
    -img1.jpg 
    -img2.jpg 

'folder/img1.jpg'的URL將被閃存文件就好了加載。

+0

能否請您擴大一點你的建議?什麼是基礎:你說的參數? – Ponty 2010-07-08 10:23:49

+0

我已經擴展了上面的答案。我希望它有幫助! – DHuntrods 2010-07-08 11:05:14

+0

所以你說的是,我可以在服務器上的文件夾,並通過swfobject的聲明其路徑(可以從ActionScript中聲明?),然後每一次我使用URLRequest作爲我的第一個例子中的時間,然後相應的文件就會被下載在客戶端(?),或者當我構建它時,Flash應用程序正在找到jpeg文件,因此它們不會在運行時(?)下載,請更清楚。 – Ponty 2010-07-08 13:17:15