flash動態文本滾動條

 ★上次寫過一個基於scroll值的動態文本滾動條了,其實那次主要是爲了尋求解決重大BUG的方法,卻沒想到被好多網站當成教程轉載,於是就很不安,今天專門抽時間又把這個滾動條完善了一下。儘管還有不少BUG,但比上一次進步了很多:)
★功能:
→支持動態文本載入,真正基於scroll值
→支持按鈕,滑塊拖動,鼠標滾輪,滾動條背景點擊
→支持選擇文本時的拖拽滾動
→能根據文本的增加和減少自動調整滑塊位置
→修正了滾動條溢出的BUG
→體積非常小,只有2K,而且對資源的佔用率也降到最低
★缺陷:
→如果滑塊在最底端,當一次性刪除大量文本時,仍會導致短暫的滾動條溢出,不過它回立即自動修復
→按鈕控制、滑塊控制、以及滾動條背景點擊控制之間相互切換的時候,會導致一行的偏差,對於這個BUG,我真的無能爲力了,希望高手能指教一下,另外我也真的非常想知道MM的srollbar組件到底是怎麼做的!?
★說明:
→下面我將貼出這個滾動條的所有代碼,並進行了逐行註釋。在看代碼之前,建議先看一下這個說明圖示,對理解滾動條原理以及代碼很有幫助。
→圖示:
[url=http://www.huoshan.org/shiyan/gundongtiao/gundongtiao3.htm]
[color="#800080"]http://www.huoshan.org/shiyan/gundongtiao/gundongtiao3.htm[/color]
[/url]
→源文件:
[url=http://www.huoshan.org/shiyan/gundongtiao/gundongtiao3.rar]
[color="#800080"]http://www.huoshan.org/shiyan/gundongtiao/gundongtiao3.rar[/color]
[/url]

[1b][/1b] 
[1b]代碼部分:[/1b]
//=================系統初始化=================//
//——————界面初始化
//小滑塊不可見,上下按鈕不可用
huakuai_mc._visible = false;
shang_btn.enabled = false;
xia_btn.enabled = false;
//初始化點擊熱區的影片
requ_mc._alpha = 0;
requ_mc._width = this._width;
requ_mc._height = xia_btn._y-shang_btn._y-shang_btn._height;
requ_mc._x = 0;
requ_mc._y = shang_btn._y+shang_btn._height;
//——————變量初始化
//文本域接口變量:接收父剪輯文本域名字
var wenben_txt = _parent.wenben_txt;
//按鈕按下的時間,當按下指定時間後,連續滾動
var zhidingshijian = 500;
//滑塊兒高度隨文本多少變化的指數因子,此因子小於1,大於零,其值越大,高度變化越劇烈
var zhishuyinzi = 1/3;
//滑塊的初始高度爲滾動條總高度,並記錄
var chushigaodu = Math.floor(xia_btn._y-shang_btn._y-shang_btn._height);
//初始化滑塊Y座標,並記錄
var ychushiweizhi = huakuai_mc._y=Math.floor(shang_btn._y+shang_btn._height);
//——————對象初始化
//爲父剪輯的文字域註冊偵聽器,以偵聽在文字域產生變化時,也就是在文本被載入進來時,執行下面的代碼。這樣就不用擔心代碼執行順序問題!
var wenbenzhentingqi = new Object();
wenben_txt.addListener(wenbenzhentingqi);
//鼠標滾球滾動偵聽對象
var shubiaozhentingqi = new Object();
Mouse.addListener(shubiaozhentingqi);
//====================滾動代碼===================//
//——————當文字域載入完成時,觸發onScroller事件!
wenbenzhentingqi.onScroller = function() {
       //判斷滑塊兒是否顯示,並根據文本內容多少定義滑塊高度
       if (wenben_txt.maxscroll != 1) {
              //小滑塊可見,上下按鈕可用
              huakuai_mc._visible = true;
              shang_btn.enabled = true;
              xia_btn.enabled = true;
              //定義一個高度因子,此因子隨加載文本的增多,將無限趨向於1。
              var gaoduyinzi = 1-(wenben_txt.maxscroll-1)/wenben_txt.maxscroll;
本文轉自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/1166.html
發佈了0 篇原創文章 · 獲贊 0 · 訪問量 1519
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章