2010年9月24日 星期五

FLASH 使用 UIScrollBar 組件

UIScrollBar 組件讓您能為文字欄位加上捲軸。您可以在編寫期間為文字欄位加上捲軸,或在執行階段使用 ActionScript 進行。若要使用 UIScrollBar 組件,請在「舞台」上建立文字欄位,並將 UIScrollBar 組件從「組件」面板拖曳到文字欄位範圍框的任何區域。
如果捲軸長度小於捲動箭頭的合併大小,則無法正確顯示捲軸。其中一個箭頭按鈕會變成隱藏在另一按鈕之後。Flash 不檢查這方面的錯誤。此時最好使用 ActionScript 隱藏捲軸。如果捲軸太小以致放不下捲軸方塊 (縮圖),Flash 會隱藏捲軸方塊。
UIScrollBar 組件的功能如同其它捲軸。兩端各有一個箭頭按鈕,其間又有捲動軌道和捲軸方塊 (縮圖)。此組件可附加到文字欄位的任一邊,以垂直或水平方向使用。
如需有關 TextField 的詳細資訊,請參閱 Adobe® Flash® Professional CS5 的 ActionScript® 3.0 參考中的 TextField 類別。

與 UIScrollBar 組件的使用者互動

UIScrollBar 不同於其它多數組件,此組件可接受連續的滑鼠輸入,例如使用者按住滑鼠按鈕而不需要重複點選。
UIScrollBar 組件與鍵盤之間沒有互動。

UIScrollBar 組件參數

您可以在「屬性」檢測器或「組件檢測器」中,為每個 UIScrollBar 組件實體設定下列編寫參數:direction 以及 scrollTargetName。這些參數都具有相對應的 ActionScript 同名屬性。
您可以撰寫 ActionScript,使用 UIScrollBar 實體的類別方法、屬性和事件,以設定 UIScrollBar 實體的其它選項。如需詳細資訊,請參閱 Adobe® Flash® Professional CS5 的 ActionScript® 3.0 參考中的 UIScrollBar 類別。

建立具有 UIScrollBar 組件的應用程式

下列程序說明如何在編寫時將 UIScrollBar 組件加入應用程式。
  1. 建立新的 Flash (ActionScript 3.0) 文件。
  2. 建立動態文字欄位,其高度必須要能容納一行或兩行文字,然後在「屬性」檢測器中賦予實體名稱 myText
  3. 在「屬性」檢測器中,將文字輸入欄位的「字行類型」設定為「多行」;若要想使用水平捲軸,請設定為「多行不換行」。
  4. 開啟「動作」面板,在主要「時間軸」中選取「影格 1」,然後輸入下列 ActionScript 程式碼以填入 text 屬性,讓使用者必須捲動才能檢視全部的文字:
    myText.text="When the moon is in the seventh house and Jupiter aligns with Mars, then peace will guide the planet and love will rule the stars."
    備註: 請確定「舞台」上的文字欄位小到需要捲動才看得到所有文字。否則,捲軸就不會出現,或可能只出現兩行但沒有縮圖底框 (拖曳以捲動內容的部分)。
  5. 確認已開啟物件貼齊功能 (「檢視 > 貼齊 > 貼齊物件」)。
  6. 將 UIScrollBar 實體從「組件」面板拖曳到文字輸入欄位附近要附加捲軸的位置。等到組件與文字欄位重疊時才放開滑鼠,讓組件適當地繫結至欄位。賦予組件實體名稱 mySb
    組件的 scrollTargetName 屬性會自動填入,其值等於文字欄位在「屬性」檢測器和「組件檢測器」中的實體名稱。如果此名稱未出現在「參數」索引標籤中,表示 UIScrollBar 實體可能重疊得不夠多。
  7. 選取「控制 > 測試影片」。

使用 ActionScript 建立 UIScrollBar 組件實體

您可以使用 ActionScript 建立 UIScrollBar 實體,讓捲軸與文字欄位在執行階段產生關聯。下列範例會建立水平方向的 UIScrollBar 實體,並且將它附加到名為 myTxt 的文字欄位實體下方,而該文字欄位實體則是從 URL 載入文字。此範例也設定捲軸的大小,以符合文字欄位的大小:
  1. 建立新的 Flash (ActionScript 3.0) 文件。
  2. 將 ScrollBar 組件拖曳到「元件庫」面板。
  3. 開啟「動作」面板,選取主要「時間軸」中的「影格 1」,然後輸入下列 ActionScript 程式碼:
    import flash.net.URLLoader; 
    import fl.controls.UIScrollBar; 
    import flash.events.Event; 
     
    var myTxt:TextField = new TextField(); 
    myTxt.border = true; 
    myTxt.width = 200; 
    myTxt.height = 16; 
    myTxt.x = 200; 
    myTxt.y = 150; 
     
    var mySb:UIScrollBar = new UIScrollBar(); 
    mySb.direction = "horizontal"; 
    // Size it to match the text field. 
    mySb.setSize(myTxt.width, myTxt.height);  
     
    // Move it immediately below the text field. 
    mySb.move(myTxt.x, myTxt.height + myTxt.y); 
     
    // put them on the Stage 
    addChild(myTxt); 
    addChild(mySb); 
    // load text 
    var loader:URLLoader = new URLLoader(); 
    var request:URLRequest = new URLRequest("http://www.helpexamples.com/flash/lorem.txt"); 
    loader.load(request); 
    loader.addEventListener(Event.COMPLETE, loadcomplete); 
     
    function loadcomplete(event:Event) { 
        // move loaded text to text field 
        myTxt.text = loader.data; 
        // Set myTxt as target for scroll bar. 
        mySb.scrollTarget = myTxt; 
    }
  4. 選取「控制 > 測試影片」。

沒有留言:

張貼留言

google ad