日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁(yè) > 辦公 > Flash > 正文

Flash AS3教程:動(dòng)態(tài)文本滾動(dòng)條

2020-07-17 13:22:08
字體:
供稿:網(wǎng)友
學(xué)AS3幾個(gè)星期了,發(fā)一個(gè)我的小練習(xí):動(dòng)態(tài)文本滾動(dòng)條
功能說明
本版滾動(dòng)條除了繼續(xù)保持體積小(小于2K),界面容易修改,資源占用率小的優(yōu)勢(shì)外,主要有以下幾點(diǎn)改進(jìn):
    使用AS3編寫。 寬高動(dòng)態(tài)指定。 增加滾動(dòng)條背景點(diǎn)擊事件。 消除了鼠標(biāo)滾輪無法同時(shí)準(zhǔn)確控制多個(gè)文本框的重大BUG。

源文件下載
使用方法見源文件
為了方便懶人,直接帖一下代碼:
package com.qoolu.component
{
import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.SimpleButton;
import flash.text.TextField;
import flash.display.Sprite;
import flash.utils.getTimer;
import flash.geom.Rectangle;
/**
* @author 寂寞火山:[url]http://www.huoshan.org[/url]
* @version V5 [08.3.15]
* 動(dòng)態(tài)文本滾動(dòng)條
*/
public class ScrollBar extends Sprite {
//=============本類屬性==============
////接口元件
private var scrollText : TextField;
private var scrollBar_sprite : Sprite;
private var up_btn : SimpleButton;
private var down_btn : SimpleButton;
private var pole_sprite : Sprite;
private var bg_sprite : Sprite;
////初始數(shù)據(jù)
private var poleStartHeight : Number;
private var poleStartY : Number;
private var totalPixels : Number;
private var isSelect : Boolean;
////上下滾動(dòng)按鈕按鈕下時(shí)間
private var putTime : Number;
/**
* @param scrollText_fc:被滾動(dòng)的文本框
* @param scrollBarMc_fc:舞臺(tái)上與本類所代理的滾動(dòng)條元件
* @param height_fc:滾動(dòng)條高
* @param width_fc:滾動(dòng)條寬
*/
public function ScrollBar(scrollText_fc : TextField, scrollBarMc_fc : Sprite, height_fc : uint = 0,width_fc : uint = 0) {
//——————滾動(dòng)條_sprite,滾動(dòng)條按鈕和滑塊mc,被滾動(dòng)的文本域初始化
scrollText = scrollText_fc;
scrollBar_sprite = scrollBarMc_fc;
up_btn = SimpleButton(scrollBar_sprite.getChildByName("up_btn"));
down_btn = SimpleButton(scrollBar_sprite.getChildByName("down_btn"));
pole_sprite = Sprite(scrollBar_sprite.getChildByName("pole_mc"));
bg_sprite = Sprite(scrollBar_sprite.getChildByName("bg_mc"));

//——————可用性控制
pole_sprite.visible = false;
up_btn.enabled = false;
down_btn.enabled = false;

//——————其他屬性初始化
bg_sprite.useHandCursor = false;
isSelect = scrollText.selectable;
if(height_fc == 0) {
bg_sprite.height = scrollText.height;
}else {
bg_sprite.height = height_fc;
}
if(width_fc != 0) {
bg_sprite.width = width_fc 2;
pole_sprite.width = width_fc;
up_btn.width = up_btn.height = down_btn.width = down_btn .height = width_fc;
}
down_btn.y = bg_sprite.y bg_sprite.height - down_btn.height - 1;
poleStartHeight = Math.floor(down_btn.y - up_btn.y - up_btn.height);
poleStartY = pole_sprite.y = Math.floor(up_btn.y up_btn.height);

//——————注冊(cè)偵聽器
//文本滾動(dòng)與鼠標(biāo)滾輪
scrollText.addEventListener(Event.SCROLL, textScroll);
scrollText.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheel);
//上滾動(dòng)按鈕
up_btn.addEventListener(MouseEvent.MOUSE_DOWN, upBtn);
up_btn.stage.addEventListener(MouseEvent.MOUSE_UP, upBtnUp);
//下滾動(dòng)按鈕
down_btn.addEventListener(MouseEvent.MOUSE_DOWN, downBtn);
down_btn.stage.addEventListener(MouseEvent.MOUSE_UP, downBtnUp);
//滑塊
pole_sprite.addEventListener(MouseEvent.MOUSE_DOWN, poleSprite);
pole_sprite.stage.addEventListener(MouseEvent.MOUSE_UP, poleUp);
//滑塊背景點(diǎn)擊
bg_sprite.addEventListener(MouseEvent.MOUSE_DOWN, bgDown);
}
/**
* 文本滾動(dòng)事件
*/
private function textScroll(event : Event) : void {
//判斷滑塊兒是否顯示,并根據(jù)文本內(nèi)容多少定義滑塊高度
if(scrollText.maxScrollV != 1) {
pole_sprite.visible = true;
up_btn.enabled = true;
down_btn.enabled = true;
//定義一個(gè)高度因子,此因子隨加載文本的增多,將無限趨向于1
var heightVar : Number = 1 - (scrollText.maxScrollV - 1) / scrollText.maxScrollV;
//根據(jù)高度因子初始化滑塊的高度
pole_sprite.height = Math.floor(poleStartHeight * Math.pow(heightVar, 1 / 3));
totalPixels = Math.floor(down_btn.y - up_btn.y - up_btn.height - pole_sprite.height);
pole_sprite.y = Math.floor(poleStartY totalPixels * (scrollText.scrollV - 1) / (scrollText.maxScrollV - 1));
}else {
pole_sprite.visible = false;
up_btn.enabled = false;
down_btn.enabled = false;
}
}
/**
* 滑塊滾動(dòng)
*/
private function poleSprite(event : MouseEvent) : void {
//首先取消文本框滾動(dòng)偵聽,因?yàn)槲谋緷L動(dòng)的時(shí)候會(huì)設(shè)置滑塊的位置,而此時(shí)是通過滑塊調(diào)整文本的位置,所以會(huì)產(chǎn)生沖突
scrollText.removeEventListener(Event.SCROLL, textScroll);
//監(jiān)聽舞臺(tái),這樣可以保證拖動(dòng)滑竿的時(shí)候,鼠標(biāo)在舞臺(tái)的任意位置松手,都會(huì)停止拖動(dòng)
scrollBar_sprite.stage.addEventListener(MouseEvent.MOUSE_UP, poleUp);
//限定拖動(dòng)范圍
var dragRect : Rectangle = new Rectangle(pole_sprite.x, poleStartY, 0, totalPixels);
pole_sprite.startDrag(false, dragRect);
scrollBar_sprite.addEventListener(Event.ENTER_FRAME, poleDown);
}
private function poleDown(event : Event) : void {
//在滾動(dòng)過程中及時(shí)獲得滑塊所處位置
var nowPosition : Number = Math.floor(pole_sprite.y);
//使文本隨滾動(dòng)條滾動(dòng),這里為什么要加1,可見scroll屬性值應(yīng)該是取正的,也就是說它會(huì)刪除小數(shù)部分,而非采用四舍五入制?
scrollText.scrollV = (scrollText.maxScrollV - 1) * (nowPosition - poleStartY) / totalPixels 2;
//誤差校正
var unitPixels : Number = totalPixels / (scrollText.maxScrollV - 1);
if((nowPosition - poleStartY) < unitPixels) {
scrollText.scrollV = (scrollText.maxScrollV - 1) * (nowPosition - poleStartY) / totalPixels;
}
}
private function poleUp(event : MouseEvent) : void {
pole_sprite.stopDrag();
scrollBar_sprite.removeEventListener(Event.ENTER_FRAME, poleDown);
scrollBar_sprite.stage.removeEventListener(MouseEvent.MOUSE_UP, poleUp);
scrollText.addEventListener(Event.SCROLL, textScroll);
}
/**
* 滑塊背景點(diǎn)擊
*/
private function bgDown(event : MouseEvent) : void {
var nowPosition : Number;
if((scrollBar_sprite.mouseY - up_btn.y) < (pole_sprite.height / 2)) {
nowPosition = Math.floor(up_btn.y up_btn.height);
}else if((down_btn.y - scrollBar_sprite.mouseY) < pole_sprite.height / 2) {
nowPosition = Math.floor(down_btn.y - pole_sprite.height);
}else {
nowPosition = scrollBar_sprite.mouseY - pole_sprite.height / 2;
}
pole_sprite.y = nowPosition;
scrollText.scrollV = (scrollText.maxScrollV - 1) * (nowPosition - poleStartY) / totalPixels 2;
var unitPixels : Number = totalPixels / (scrollText.maxScrollV - 1);
if((nowPosition - poleStartY) < unitPixels) {
scrollText.scrollV = (scrollText.maxScrollV - 1) * (nowPosition - poleStartY) / totalPixels 1;
}
}
/**
* 下滾動(dòng)按鈕
*/
private function downBtn(event : MouseEvent) : void {
scrollText.scrollV ;
pole_sprite.y = Math.floor(poleStartY totalPixels * (scrollText.scrollV - 1) / (scrollText.maxScrollV - 1));
//當(dāng)鼠標(biāo)在按鈕上按下的時(shí)間大于設(shè)定時(shí)間時(shí),連續(xù)滾動(dòng)
putTime = getTimer();
scrollBar_sprite.addEventListener(Event.ENTER_FRAME, downBtnDown);
}
private function downBtnDown(event : Event) : void {
if(getTimer() - putTime > 500) {
scrollText.scrollV ;
pole_sprite.y = Math.floor(poleStartY totalPixels * (scrollText.scrollV - 1) / (scrollText.maxScrollV - 1));
}
}
private function downBtnUp(event : MouseEvent) : void {
scrollBar_sprite.removeEventListener(Event.ENTER_FRAME, downBtnDown);
}
/**
* 上滾動(dòng)按鈕
*/
private function upBtn(event : MouseEvent) : void {
scrollText.scrollV--;
pole_sprite.y = Math.floor(poleStartY totalPixels * (scrollText.scrollV - 1) / (scrollText.maxScrollV - 1));
//當(dāng)鼠標(biāo)在按鈕上按下的時(shí)間大于設(shè)定時(shí)間時(shí),連續(xù)滾動(dòng)
putTime = getTimer();
scrollBar_sprite.addEventListener(Event.ENTER_FRAME, upBtnDown);
}
private function upBtnDown(event : Event) : void {
if(getTimer() - putTime > 500) {
scrollText.scrollV--;
pole_sprite.y = Math.floor(poleStartY totalPixels * (scrollText.scrollV - 1) / (scrollText.maxScrollV - 1));
}
}
private function upBtnUp(event : MouseEvent) : void {
scrollBar_sprite.removeEventListener(Event.ENTER_FRAME, upBtnDown);
}
/**
* 鼠標(biāo)滾輪事件
*/
private function mouseWheel(event : MouseEvent) : void {
if(isSelect == false) {
scrollText.scrollV -= Math.floor(event.delta / 2);
}else if(isSelect == true) {
event.delta = 1;
}
pole_sprite.y = Math.floor(poleStartY totalPixels * (scrollText.scrollV - 1) / (scrollText.maxScrollV - 1));
}
}
}

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产在线不卡av| 中文字幕日韩精品在线| 日韩在线视频免费观看| 欧美一级日韩不卡播放免费| 国产偷国产偷亚洲清高网站 | 91精品国产自产| 不卡视频一区二区三区| 日韩欧美99| 日韩在线中文视频| 久久精品免费在线观看| 国产黄色网页| 精品国产91| 中文字幕在线精品| 91精品视频免费在线观看| 日韩欧美一级二级三级久久久| 日韩久久不卡| 国产日韩在线视频| 99视频在线看| 中文字幕在线视频精品| 国产欧美高清在线| 亚洲欧美小说国产图片| 日韩亚洲欧美中文三级| 中文字幕在线视频日韩| 欧美三级中文字幕| а√天堂8资源中文在线| 国产日韩精品在线看| 国产无套粉嫩白浆在线2022年| 欧美日韩精品区| 快she精品国产999| 91精品国产亚洲| 亚洲欧美中文字幕在线观看| 日韩欧美一级二级三级久久久| 欧美日韩精品三区| 日韩久久久精品| av免费在线观看网址| 一区二区日韩av| 国产亚洲一级| 精品日韩99亚洲| 国产小视频免费在线网址| 久草视频在线看| 日韩在线视频观看正片免费网站| 久草视频观看| 国产69精品久久久久孕妇国产69久久| 在线欧美日韩国产| 国内精品99| 中文亚洲免费| 欧美日韩中文字幕综合视频 | 亚洲第一中文字幕| 国产欧美久久久精品免费| 日本视频久久久| 亚洲高清视频在线| 国产91欧美| a√免费观看在线网址www| 亚亚洲欧洲精品| 精品国产网站在线观看| 国产一区成人| 韩国v欧美v日本v亚洲| 一级特黄aaa大片在线观看| 中文字幕成人乱码在线电影| 日韩视频免费直播| 欧洲精品久久久| 国产视频2区| 亚洲国产欧美日韩精品| 久久99久久99精品中文字幕| 欧美日韩一二三四| 亚洲a中文字幕| 国产成人日日夜夜| 91精品国产自产在线观看永久∴| 玖玖在线免费视频| 亚洲综合在线小说| 欧美日韩国产不卡在线看| 欧美国产一区视频在线观看| 久久久精品国产99久久精品芒果| 国产羞羞视频在线播放| 日韩中文字幕在线播放| 在线视频不卡一区二区| 国产乱一区二区| 欧美亚洲视频在线看网址| 欧美日韩精品在线 | 99精品999| 日韩中文欧美| 日韩中文字幕91| 精品日韩av| 亚洲欧美小说国产图片| 国产一区日韩| 亚洲社区在线| 欧美日韩午夜在线| 中文字幕欧美亚洲| 日韩欧美中文在线视频| 日韩激情一区| 日韩在线视频观看| 黄色一区二区在线| 影音先锋一区二区资源站| 国产一级视频在线播放| 91色在线看| 国产黄在线观看| 亚洲制服丝袜一区| 国产成人精品网址| 91精品国产自产91精品| 日韩亚洲欧美中文高清在线| 日韩中文字幕在线视频播放| 精品人妻一区二区免费视频| 欧美二三四区| 国产黄色一区| 国产成人精品网址| 在线不卡日本| 欧美亚洲国产免费| 欧美日韩亚洲综合在线| 国产欧美日韩精品高清二区综合区| 久久夜色精品国产噜噜亚洲av| 欧美日韩中文字幕精品| 欧美在线视频二区| 蜜桃视频一日韩欧美专区| 一区二区91| wwwav在线播放| 欧美三级日韩在线| 三级网站免费观看| 97国产视频| 91久久精品视频| 国产中文在线观看| 日本不卡免费高清视频| 高清1区2区| 91精品国产91久久久久久不卡| 欧美wwww| 欧美亚洲天堂| 日韩欧美在线不卡| 久久永久免费视频| 天天综合天天综合| 中文字幕欧美日韩va免费视频| 亚洲男女av一区二区| 91精品国产欧美日韩| 欧美不卡视频| 91麻豆精品在线| 欧美一卡2卡三卡4卡5免费| 日韩免费电影网站| 大香一本蕉伊线亚洲网| 自拍日韩亚洲一区在线| 欧美国产日韩在线播放| 日韩精品在线网站| 国产v日产∨综合v精品视频| 高清一区二区| 日韩久久99| 亚洲一区三区在线观看| 亚洲乱码中文字幕| 色欧美日韩亚洲| 欧美日韩综合高清一区二区 | 欧美日韩亚洲国产综合| 久久久久久欧美| 国产嫩草影院久久久久| 欧美日韩综合高清一区二区| av免费观看国产| 红桃视频亚洲| 国产一级在线免费观看| 91精品国产综合久久精品app| 国产成人精品综合久久久| 蜜桃久久av一区| 日韩 国产 一区| 最近高清中文在线字幕在线观看| 91精品国产经典在线观看| 亚洲第一精品在线| 99久久www免费| 97国产视频| 久久人人精品| av不卡免费看| 中文字幕在线视频精品| 日韩在线视频免费观看| 国产激情久久久| 一区二区三区高清在线| 中文在线第一页| 日韩欧美中文视频| 一区二区日韩视频| 在线一区av| 在线不卡一区二区| 97caopor国产在线视频| 欧美日韩免费视频| 中文字幕精品一区二| 黄色一级大片在线免费看国产一| 91精品国产91久久久久| 欧美久久久久久蜜桃| 国产激情99| 91精品在线观| 一区二区三区视频网站| 中文字幕国产亚洲| 欧美日韩99| 国产三级视频在线| 97久久精品午夜一区二区| 欧美一级久久久久久久久大| 欧美日韩精品在线| 欧美日韩在线不卡| 极品久久久久久| 亚洲中文字幕一区| 一区二区在线高清视频| 日韩免费电影网站| 国产一卡二卡3卡4卡四卡在线| 欧美日韩日本视频| 久久久精品日韩欧美| 视频一区中文字幕国产| 日韩欧美中文| 国产成人精品免费网站| 久久婷婷国产| 日韩av一区二| 91精品啪在线观看国产60岁| 欧美日韩中文字幕日韩欧美| 精品不卡一区二区| 不卡一二三区| 欧美日韩国产一级片| 国产又粗又猛又爽又黄91精品| 97久久精品| 久久久精品福利| 日韩欧美三级视频| 日本国产一区| 国产日产一区二区| 欧美人妻一区二区三区| 国产乱码在线观看| 日韩欧美国产视频| 中文字幕精品一区二| a天堂中文在线官网在线| av影视在线看| 欧美日韩久久不卡| 91吃瓜在线观看| 日韩va亚洲va欧洲va国产| 国产亚洲二区| 欧美日韩国产专区| 欧美日韩综合视频| 在线国产91| 久久久精品国产99久久精品芒果| 内射国产内射夫妻免费频道| 91精品国产综合久久蜜臀| 国产小视频在线观看免费| 日韩精品视频在线观看网址| 欧美亚洲天堂网| 久久精品99久久久久久久久| 欧美日韩精品欧美日韩精品一| 视频一区二区不卡| 精品一二三四区| 日韩福利视频导航| 午夜一区二区三区| 99在线精品视频免费观看20| 玖玖在线免费视频| 国产视频中文字幕| 精品在线91| 国产在线导航| 亚洲视频电影在线| 亚洲国产一区自拍| 国产婷婷色一区二区三区| 99精品视频99| 亚洲福利精品| 欧美国产综合视频| 欧美日中文字幕| 欧美日韩国产免费观看视频| 欧美一级免费观看| 国内精品露脸在线视频播放| 久久久精品日韩| 国产乱国产乱老熟300| 日韩国产91| 91 中文字幕| 亚洲中文字幕一区| 国产三级视频在线播放线观看| 日韩三级一区二区| 中文字幕在线观看欧美| 日韩免费电影网站| 在线资源av| 蜜臀久久精品| 一区二区国产在线| wwww亚洲| 中文字幕在线观看精品| 欧美亚洲天堂网| 欧美三级日韩在线| 精品一二三四区| 中文字幕日韩欧美| 亚洲区中文字幕| 免费在线视频一级不卡| 色屁屁一区二区| 国产性一级片| 91麻豆视频网站| 久久精品一级爱片| 91精品国产91久久久久| 日韩在线高清视频| 日韩精品手机在线| 韩国av一区二区| 亚洲女人天堂色在线7777| 国产v日产∨综合v精品视频| 国产一区久久久| 影音先锋一区二区资源站 | 日韩精品视频中文字幕| 日本精品在线中文字幕| 精品久久蜜桃| 午夜高潮免费视频| 欧美日韩在线播放一区| 亚洲第一页中文字幕| 国产天堂素人系列在线视频| 精品中文在线| 日韩精品视频免费在线观看| 国产成人精品日本亚洲专区61 | www.91香蕉视频| 日韩精品在线视频| 天天综合天天添夜夜添狠狠添| 成人xxxx| 日韩精品视频免费在线观看| 日韩国产一区三区| 日韩中文字幕综合| 国产v日产∨综合v精品视频| 欧美日韩高清在线| 亚洲第一网中文字幕| 久艹在线视频| 日韩av二区| 国产欧美日韩综合精品| 欧美日韩在线观看成人| 日韩av一区在线| 日韩 欧美 中文| 日韩欧美中文视频| eeuss一区| 精品国产99| 日本亚洲欧美| 亚洲午夜av| 国产日韩av一区二区| 深夜福利一区二区| 欧美日韩在线视频免费观看 | 欧美片网站免费| 亚洲福利视频在线| 影音先锋一区二区资源站| 国产欧美日韩三级| 国产欧美日产一区| 在线精品视频免费播放| 中文字幕亚洲高清| 日韩国产高清一区| 欧美中文字幕视频在线观看 | 日韩免费电影网站| 国产视频一区二| 亚洲欧美999| 久久精品国产99| 日韩欧美在线视频日韩欧美在线视频| av免费网站在线| 日韩一级视频在线观看| 欧美日韩在线不卡视频| www在线视频| 日本视频久久久| 国产成人精品日本亚洲专区61| 欧美日韩综合不卡| 高清不卡一区二区| 999在线视频| 国产字幕在线看| 在线视频国内一区二区| 亚洲福利精品视频| 国产福利免费在线观看| 日韩在线中文视频| 欧美高清一级片在线| 日韩精品三级| 日韩 国产 一区| 中文字幕第一页在线播放| 69堂精品视频在线播放| 在线视频观看日韩| 日韩精品三级| aaa免费看大片| 91一区二区| 亚洲黄色片在线观看| 国产激情久久久| 日韩精品在线看| 国产乱国产乱300精品| 欧美日韩国产第一页| 精品久久九九| 亚洲视频中文字幕| 国产小视频在线| 国产日韩中文字幕在线| 精品久久人人做人人爽| 欧美日韩亚洲91| 国产精久久久久| 91精品国产综合久久久久久漫画 | 在线观看av的网站| 精品国产91乱高清在线观看| 91精品视频播放| 人成在线免费视频| 97久久精品午夜一区二区| 91精品国产综合久久久久| 国产一级久久久| 第一页在线观看| 欧美日韩高清一区二区| 国产日韩精品视频| 欧美 日韩 中文字幕| 精品欧美日韩精品| 久久精品久久精品亚洲人| 日韩精品视频中文字幕| 久久久精品日韩欧美| 91麻豆精品国产91久久久使用方法| 视频一区三区| 日韩精品手机在线| 国产高清一级片| 国产一级粉嫩xxxx| 欧美日韩国产黄色| 日韩三级免费观看| 国产精品一区二三区| 99精品在线播放| 欧美中文字幕在线视频| 精品国产欧美日韩不卡在线观看| 欧美99久久| 亚洲综合日韩中文字幕v在线| 欧美精品一区二区三区在线播放| 中文字幕在线国产| 国产91欧美| 91久久精品在线|