Flash 8 的本機網路連線問題
文∕趙英傑
有讀者來信指出,《碼上就會:Flash 8動畫設計寶典》書本第十章節示範的Flash版google搜尋欄位,在本地端執行時,會出現底下的警告訊息:
這是Macromedia避免Flash連結到外部的惡意程式所加上的新限制,Flash 8以前的影片不會有影響。在預設的本機安全模式之下,Flash 8影片不能連結網路資源,也不能在本機呼叫網頁上的JavaScript程式。雖然這項新限制的美意在於保護Flash用戶,但也在Mike Chambers先生的blog上,招致許多開發人員的抱怨。
如果從遠端(亦即,將Flash影片上傳到網站)執行,或者把Flash影片匯出成.exe格式的專案檔,就不會出現上圖的警告訊息。啟用本機swf影片連結網路的方式有兩種,其一是從「匯出Flash影片」或者「發佈設定」面版中設定,第二種方式則是採用一個叫做Local Content Updater(本地內容升級程式)的軟體,透過文字命令模式開啟連結網路功能(如果您沒有Flash影片的原始檔,就能用這種方式)。
首先說明第一種方式。下圖是選擇主功能表「檔案→匯出→匯出影片」指令後出現的「設定Flash Player」面版的下半部:
請從「本機播放安全性」下拉式選單中選擇「只存取網路」選項,即可啟用本機連結網路功能。
Local Content Updater(本地內容升級程式)軟體請在Macromedia公司的Flash Player網頁下載(有Windows, Mac和Linux版本)。以Windows版本為例,下載此軟體後,為了便於操作,筆者將它解壓縮到c:磁碟機的根目錄。
詳細的操作步驟說明如下:
1. 按下Windows工具列的「開始」鈕,選擇「執行」。
2. 在「執行」設定面版的「開啟」欄位,輸入"cmd",啟動命令模式。
3. 在命令模式中,輸入"cd c:\",再按下Enter鍵,切換到c磁碟的根目錄。
4. 假設我們要檢查位於c:\wamp\www\路徑底下的google.swf檔案的網路連結權限,請輸入如下指令(使用-c參數,後面跟著檔名和路徑):
LocalContentUpdater -c c:\wamp\www\google.swf
5. 按下Enter鍵後,因為筆者電腦上的google.swf檔沒有網路連線權限,因此它回報"No network privileges"。
6. 讀者也可以檢查同一路徑底下的所有檔案,例如,檢查c:\wamp\www資料夾的指令如下(使用-r -c參數,後面跟著路徑):
LocalContentUpdater -r -c c:\wamp\www\
下圖顯示此路徑包含4個檔案,最後一個檔案是.fla檔,無法檢查,因此它回報"bad file"。
7. 若要「本地內容升級程式」僅僅檢查.swf檔,請加入-s參數,例如:
LocalContentUpdater -r -s -c c:\wamp\www\
8. 最後,啟用本機.swf檔的網路連線功能的指令參數為-a,底下的指令將啟用google.swf的網路權限:
LocalContentUpdater -a c:\wamp\www\google.swf
底下的指令則會替指定路徑中的所有.swf檔啟用本地網路連線:
LocalContentUpdater -r -s -a c:\wamp\www\
9. 相反地,取消本機.swf檔的網路連線功能的指令參數為-x,底下的指令將能替指定路徑中的所有.swf檔取消本地網路連線:
LocalContentUpdater -r -s -x c:\wamp\www\
請教一個問題:
http://www.macromedia.com/support/documentation/
tw/flashplayer/help/settings_manager04a.html
為何有的ie瀏灠器進入到上面網址後
那個安全性設定的swf檔畫面會是空白的一片呢?
(我有在那個swf檔上按右鍵,發現swf檔是存在的…)
煩請提供會出現空白畫面的IE瀏覽器的相關設定值,謝謝!
趙老師你好:
我是你flashcs3動畫設計寶典的讀者
想請教你一個問題
列如我做一個swf的跑馬燈
我把它堪入網頁
但要怎麼樣才能讓這跑馬燈的文字
從網頁的語法就能修改跑馬燈文字的內容
這種可以由網頁語法就能改變swf檔案的文字或網址內容
的程式該怎麼寫?
我找遍了市售的相關書籍
都沒有任何一本書提到這方面程式的寫法
有空煩請老師教教我
感激不盡︿︿
有兩種解決方式,一個是把資料設定在網頁,另一個則是設定在外部文字檔或XML檔。我偏好使用後者,因為這樣可以明確分離資料和版面。您可以先參考書本第14章,建立XML檔。我下週再說明讀取純文字檔的方式。
請教趙老師
我原本的SWF檔會出現最上面提到的警示畫面
不過放到網站上就可以連線資料庫
後來要修改裡面的圖片
重新發佈後
就沒有上面提到的警示畫面
但是放到網站上也沒有作用
也有選擇只選取網路也沒有用
請問還有其他的設定要注意嗎
可能的問題和情況很多,建議先在本機透過trace指令檢查關鍵變數值,以及伺服器端程式的傳回值,比較容易找出問題的根源。
趙老師你好:
我是你flashcs3動畫設計寶典的讀者,
想請教你一個問題,在Flash影片裡,想用一個按鈕來啟動pdf檔案,可以嗎?
如何製作?謝謝!感激不盡
hi david:
設定一個PDF連結即可,假設按鈕實體叫做 “pdf_btn”,範例程式如下:
var pdf_file:String = “PDF文件檔名”;
pdf_btn.addEventListener(MouseEvent.CLICK, openPDF);
function openPDF(e:MouseEvent):void {
var req:URLRequest = new URLRequest(pdf_file);
navigateToURL(req);
}
have fun!
jeffrey
趙老師你好:
謝謝老師的回覆,以下是我的問題
當我按下按鈕來啟動pdf文件時,出現下面這段訊息。
File Not Found.
Firefox can’t find the file at/CI/RTS Folder/GAB folder/gab ar 08.
但是我的”gab ar 08″pdf文件切是有在GAB folder里面,問題出在哪裡呢?
謝謝!
你有加上副檔名嗎?(.pdf)
趙老師你好:
謝謝老師,我明白了,一個原始檔,別一個副檔後面加.pdf.
在書本裡提到如果使用ActionScript 3.0撰寫程式,
就要選用Flash Player 9版本來開啟swf文件檔,
但如果別一台電腦裡沒有Flash Player 9!是否就無法開啟我的.swf文件檔?
是否有別的選擇或方法嗎?
這樣的話,只好使用ActionScript 2.0的超連結語法。假設按鈕實體名稱叫做pdf_btn,程式碼大致如下:
pdf_btn.onRelease = function () {
getURL(“你的PDF網址”);
}
have a nice day!
jeffrey
感謝老師的解答:
另外想請教老師,當我把影片製作完畢後,把它匯出成swf格式,然后把它燒錄進光碟裡,光碟裡有-
1)gab ar 2008.swf(主檔)
2)gab_08(原檔)
3)gab_08.pdf(副檔)
4)Adobe Flash Player 8.(Windows 和 Mac版本)
5)Adobe Acrobat Reader 8 (Windows 和 Mac版本)
我的要求是當光碟放入光碟機內時,
能Autorun直接開啟主檔swf文件。
然后在主檔swf裡用一個按鈕來啟動pdf檔案。
我的目的是要在不同的電腦(pc/Mac)都能開啟光碟內的資料,
在不用連結綱站的情況下讀取光碟內的文件。
以上是我個人的意願,請老師多多指教。
請問老師Autorun是如何設定的?
按鈕直接啟動Acrobat Reader.pdf檔,程式碼如何寫?
(注)我是用Roxio Toast 6 Titanium 軟件來燒錄光碟。
願上帝保守你與家人
祝平安喜樂
光碟自動執行的功能,Windows叫做Autorun,Mac叫做Autostart。
不過我記得在Mac OS X底下,它頂多只能做到開啟光碟資料夾的功能,我要再測試看看。
趙老師你好:
想請教老師,製作一個音效按鈕,
可以開關音效,按鈕外型開時是ON,關時是OFF,
如何製作?ActionScript 2.0的程式碼如何寫?
謝謝!
老師你好 我有一個很困難的問題我無法解決 就是我把我的swf檔放在我們公司的後台 apache srerver內 然後我swf裡面讀取xml 從xml裡面得知要讀取哪張圖片近來swf裡面用 xml、圖片、swf 都是個別獨立的 然後xml裡面的圖片資訊只是給檔名 請問我要如何修改才能讀取到xml以及圖片呢
hi 阿鼎:
從瀏覽器讀取遠端web上的swf,那就不是「本機連線」,因此沒有上文論及的「本機」安全性問題。撰寫ActionScript時,讀取外部XML和圖片的路徑,將是相對於swf所在網頁檔的位置。
good luck!
jeffrey