Yahoo Answers is shutting down on May 4th, 2021 (Eastern Time) and beginning April 20th, 2021 (Eastern Time) the Yahoo Answers website will be in read-only mode. There will be no changes to other Yahoo properties or services, or your Yahoo account. You can find more information about the Yahoo Answers shutdown and how to download your data on this help page.

Flash2004組件裡的Loading...(20點)

請問Flash2004組件裡的Loading要如何套用?

需要設定什麼呢?

2 Answers

Rating
  • Anonymous
    2 decades ago
    Favorite Answer

    Flash MX 2004版中,加進了很多實用的組件,像是TextArea、RadioButton、Tree、Loader等,這些組件的存在都是為了讓開發者在開發的時候更加的便利,所以在設計上大部份都只是填填實體名稱和一些變數就可以馬上使用,這樣方便的功能,當然對於ActionScript不夠熟悉而有這方面需求的朋友而言,也是一個很大的福音。再加上Macromedia公司所設計的組件除了功能上的便利外,在造形、配色等設計上其實也有一定的水準,所以在使用上也挺賞心悅目的。

      在這個單元中,將介紹在組件群組中,UI Components下的ProgressBar的使用方式,這一個組件可以讓你很快速的在你的Flash檔案中加上一個具有長條圖Loading顯示的下載訊息。

      要使用這個組件很簡單,首先你先將你要做Loading的檔案準備好,然後建立一個新的場景,將這個場景置放到最前面,然後由組件視窗中,UI Components群組裡找到下面這個圖示,將它拖曳到剛剛建立好的場景裡。

      

      拖曳到場景後的顯示

      接著將拖曳到場景中的這一個組件選取,由屬性視窗中,點選[參數]標籤。如果你找不到你的屬性視窗,你可以按下快速鍵【Ctrl+F3】來開啟。在屬性視窗中,你可以見到一些設定的欄位,以下就針對[整個檔案的Loading]來做參數的設定。

      第一個參數,conversion,是一個計算百分比的基準數值,單位是KB,預設數字是1。也就是組件會將檔案的大小除以這個數字,然後將所得的百分比顯現出來。第二個參數,direction,是一個下拉式選單,用來指示長條圖增長的方向。第三個變數,label,是指在組件中要顯現出來的文字,建議剛使用的使用者只改預設值中Loading的字樣,其後面的%3%%為程式判讀的保留字,請勿更動。第四個變數,labelPlacement,是一個指示文字和長條圖排列位置的下拉式選單。第五個變數,mode,和Loading的來源及方式有關,如果你要針對整個檔案的Loading,請選擇Polled;如果是針對其他組件中的Loading,比如說Loader組件,就請選擇event。第六個變數,source,指的是你要做下載判別的對像實體名稱,如果是對象是整個檔案,請填入_root。

      這六個變數其實只有mode及source是必改必填,之後你就可以按下Ctrl+Enter來測試影片,並以模擬下載來看看是不是有加入成功。

     自己動手寫

    範例下載:近期開放,等找到不用錢的頻寬,有人有術網可以提供嗎?

      如果你是MX版的使用者,或是想自行設計Loading Bar的樣式,那麼大概你就非得自行寫ActionScript不可了。以下的Loading寫法,不見得是最佳最讚的寫法,如果有高手前輩願意教我更好的寫法,小弟會很感激的。

      Loading的ActionScript可以看成三個部份,第一個部份是使用語法抓取目前檔案的總大小及已經下載的檔案大小;第二個部份是寫一個迴圈,讓這個迴圈不斷的去執行第一個部份的程式;第三個部份是判斷,如果已下載的檔案大小已經和總檔案大小相同,那麼就結束迴圈,不然就繼續迴圈。

      基於上述的觀念,在以前的寫法中,我們會先在檔案的最前面加上一個名為Loading的場景,然後這個場景上先建立三個關鍵影格,稍候加上Action Script讓Flash持續在這三個影格中播放,就達成上述觀念中的第二個部份。

      接著就是在影格中寫入程式指令,讓指令來得到檔案的總大小及已經下載的檔案大小,以下分別是取得檔案大小的指令及已載的檔案大小指令:

       MovieClip.getBytesLoaded 一個整數,表示所載入的位元組數目。

       MovieClip.getBytesTotal() 表示MovieClip總長度的整數,以位元為單位。

     因此我們可以在第一影格中取得檔案的總大小,先設定一個變數totalB,讓此變數等於這個階層的getBytesTotal()。這邊使用了this而不使用_root的原因是,將來如果將此段loading的code當成loadMovie要load進來的檔案的loading,此段code使不需要再顧慮階層的問題,而可以直接複製進去使用。再來設定一個變數KB,讓此變數等於變數totalB除以1024後取整數值。因為totalB的單位是位元,除以1024後變成為KB1,而Math.floor()是取()中數值整數的數學函數。

      接著在第二影格寫上如圖左的ActionScript指令:先設定一個變數loadB等於由getBytesLoaded取得的數值,再設定一個變數KB2等於變數loadB除以1024後取整數值。接著再設定另一個變數percent,此變數的值為loadB除以totalB後乘以100再取整數值,這個變數就是下載的百分比了。看到這邊你一定會覺得為什麼都沒有用到KB1和KB2兩個變數呢?其實變數percent你也可以使用KB1除以KB2來取值,和laodB除以totalB是一樣的,在這邊設定KB1及KB2的用意是為了有一些使用者想在下載的過程式顯現出已經下載的K數,這兩個變數是為了顯現訊息而特地在這邊做換算給大家看的。

      進入到第三影格,在這個影格中我們要加上判斷式,判斷是要回到第二個影格繼續抓取檔案的下載大小,還是結束下載進入主要的場景開始播放。判斷式中我們取用變數percent來做為判斷的依據,如果變數percent小於100,也就是還沒有下載完全,那就回到第二影格繼續播放;其他的情況(else),也就是變數percent大於等於100,就進入正式的影格開始Play(gotoAndPlay)或停止(gotoAndStop)。圖例中的寫法是進入到影格標籤為sst的影格開始播放,這一段的ActionScritp要根據自己的檔案的設計而去更動。

      程式都寫好後,其實按下Ctrl+Enter就可以開始測試了。接下來我們再來更動檔案的設計,加入長條,讓長條的長度隨著載的百分比不同而有所增長。這個長條的做法其實很多種,在這邊我們介紹兩種做法:

    使用影數100格的補間動畫:

    建立一個空白的影片片段,在這個影片片段的第一影格及第100影格先加上關鍵影格,然後在第100影格處,畫上你要的長度的長條矩形。畫好後再將這個矩形複製(Ctrl+C),到第1影格在原位置複製上去(Ctrl+Shift+V),然後將複製上去的矩形長度縮成1像素;接著在這兩個關鍵影格中做形狀的補間動畫,並在第1影格處下stop()。得到一個由近乎沒有的小矩形變成長條矩形動畫。做好這個動畫後,在loading的那個場景中再建立一個新的圖層(單一關鍵影格,有三個影格的長度),將這個矩形動畫放置在該圖層中,然後命名它的實體名稱,比如說命名成bar_mc。

    然後回到寫了ActionScript的影格2,加上如圖例中的行4語法,讓bar_mc跟著變數percent前進,那麼在載的過程中,就會看到長條不斷的變長。

    利用_width來改變實體長度:

    還是先建立一個空白的影片片段,然後這個方法是直接在這個影片片段中畫上你所需要長度的矩形。如同上一個方法一樣,增加圖層、置入、命名實體名稱,最後在影格2輸入如圖例的程式指令,讓bar_mc的參數_xscale和變數lercent相等。因為_xscale這個影片參數指的是影片片段X軸方向的長度比,單位也是百分比,由0到100,所以如果讓它和變數percent相等的話,那麼這個長條就會跟著下載大小的百分比一起增長了。

      自己寫Loading的好處是可以設計更有趣的載畫面,大家不妨自行試看看。而迴圈的方式寫法很多,本篇所使用的是最傳統的Flash影格迴圈,大家也可以自行用ClipEvent中的onEnterFrame或setInterval來做做看。

    詳細圖示請到http://www.adswf.com/list.php?autoid=131

  • 2 decades ago

    要回答就自己寫,不要抄我網站的東西,還照貼!!!!

Still have questions? Get your answers by asking now.