Flash 8 的本機網路連線問題

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\

Posts created 483

18 thoughts on “Flash 8 的本機網路連線問題

  1. 趙老師你好:
    我是你flashcs3動畫設計寶典的讀者
    想請教你一個問題
    列如我做一個swf的跑馬燈
    我把它堪入網頁
    但要怎麼樣才能讓這跑馬燈的文字
    從網頁的語法就能修改跑馬燈文字的內容
    這種可以由網頁語法就能改變swf檔案的文字或網址內容
    的程式該怎麼寫?
    我找遍了市售的相關書籍
    都沒有任何一本書提到這方面程式的寫法
    有空煩請老師教教我
    感激不盡︿︿

  2. 有兩種解決方式,一個是把資料設定在網頁,另一個則是設定在外部文字檔或XML檔。我偏好使用後者,因為這樣可以明確分離資料和版面。您可以先參考書本第14章,建立XML檔。我下週再說明讀取純文字檔的方式。

  3. 請教趙老師
    我原本的SWF檔會出現最上面提到的警示畫面
    不過放到網站上就可以連線資料庫
    後來要修改裡面的圖片
    重新發佈後
    就沒有上面提到的警示畫面
    但是放到網站上也沒有作用
    也有選擇只選取網路也沒有用
    請問還有其他的設定要注意嗎

  4. 可能的問題和情況很多,建議先在本機透過trace指令檢查關鍵變數值,以及伺服器端程式的傳回值,比較容易找出問題的根源。

  5. 趙老師你好:
    我是你flashcs3動畫設計寶典的讀者,
    想請教你一個問題,在Flash影片裡,想用一個按鈕來啟動pdf檔案,可以嗎?
    如何製作?謝謝!感激不盡

  6. 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

  7. 趙老師你好:
    謝謝老師的回覆,以下是我的問題
    當我按下按鈕來啟動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里面,問題出在哪裡呢?
    謝謝!

  8. 趙老師你好:
    謝謝老師,我明白了,一個原始檔,別一個副檔後面加.pdf.
    在書本裡提到如果使用ActionScript 3.0撰寫程式,
    就要選用Flash Player 9版本來開啟swf文件檔,
    但如果別一台電腦裡沒有Flash Player 9!是否就無法開啟我的.swf文件檔?
    是否有別的選擇或方法嗎?

  9. 這樣的話,只好使用ActionScript 2.0的超連結語法。假設按鈕實體名稱叫做pdf_btn,程式碼大致如下:

    pdf_btn.onRelease = function () {
    getURL(“你的PDF網址”);
    }

    have a nice day!
    jeffrey

  10. 感謝老師的解答:
    另外想請教老師,當我把影片製作完畢後,把它匯出成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 軟件來燒錄光碟。

    願上帝保守你與家人
    祝平安喜樂

  11. 光碟自動執行的功能,Windows叫做Autorun,Mac叫做Autostart。

    不過我記得在Mac OS X底下,它頂多只能做到開啟光碟資料夾的功能,我要再測試看看。

  12. 趙老師你好:
    想請教老師,製作一個音效按鈕,
    可以開關音效,按鈕外型開時是ON,關時是OFF,
    如何製作?ActionScript 2.0的程式碼如何寫?
    謝謝!

  13. 老師你好 我有一個很困難的問題我無法解決 就是我把我的swf檔放在我們公司的後台 apache srerver內 然後我swf裡面讀取xml 從xml裡面得知要讀取哪張圖片近來swf裡面用 xml、圖片、swf 都是個別獨立的 然後xml裡面的圖片資訊只是給檔名 請問我要如何修改才能讀取到xml以及圖片呢

    1. hi 阿鼎:

      從瀏覽器讀取遠端web上的swf,那就不是「本機連線」,因此沒有上文論及的「本機」安全性問題。撰寫ActionScript時,讀取外部XML和圖片的路徑,將是相對於swf所在網頁檔的位置。

      good luck!
      jeffrey

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top