【问题标题】:Flash AS3: How to Make scroll bar react to dynamic textfield movement?Flash AS3:如何使滚动条对动态文本字段移动做出反应?
【发布时间】:2010-06-07 13:33:29
【问题描述】:

我一直在寻找一个教程并回答这个问题,但找不到我要找的东西。我正在将 html 文本加载到动态文本字段中,并且我有一个使用下面的代码控制滚动的滚动条。我想要做的也是添加向上/向下滚动按钮,并让滚动条相对于文本滚动移动。我本来打算使用“tracklistingtext.scrollV --”作为滚动按钮,但现在滚动条无法识别文本移动。我需要做什么才能让滚动条收听文本滚动位置?

var listTextreq:URLRequest=new URLRequest("tracklist.txt");
var listTextLoader:URLLoader = new URLLoader();
var bounds:Rectangle=new Rectangle(scrollMC.x,scrollMC.y,0,300);
var scrolling:Boolean=false;

function fileLoaded(event:Event):void {
 tracklistingtext.htmlText=listTextLoader.data;
 tracklistingtext.multiline=true;
 tracklistingtext.wordWrap=true;
 scrollMC.addEventListener(MouseEvent.MOUSE_DOWN, startScroll);
 stage.addEventListener(MouseEvent.MOUSE_UP, stopScroll);
 addEventListener (Event.ENTER_FRAME, enterHandler);

}

listTextLoader.addEventListener(Event.COMPLETE, fileLoaded);
listTextLoader.load(listTextreq);

function startScroll(e:Event):void {
 scrolling=true;
 scrollMC.startDrag(false,bounds);
}

function stopScroll(e:Event):void {
 scrolling=false;
 scrollMC.stopDrag();
}

function enterHandler (e:Event):void {
 if (scrolling == true) {
  tracklistingtext.scrollV = Math.round(((scrollMC.y - bounds.y)/300)*tracklistingtext.maxScrollV);
 }
}

非常感谢任何帮助。

【问题讨论】:

  • 抱歉,不太确定您想要实现什么。你能再澄清一点吗?
  • 现在滚动条控制文本滚动,但是文本滚动不控制滚动条。说得通?如果滚动条移动,文本会移动,但如果我移动文本,滚动条不会移动。

标签: actionscript-3 scrollbar textfield


【解决方案1】:

用你的替换 scrollHandler 计算。

//...

function fileLoaded(event:Event):void {
    tracklistingtext.htmlText=listTextLoader.data;
    tracklistingtext.multiline=true;
    tracklistingtext.wordWrap=true;
    scrollMC.addEventListener(MouseEvent.MOUSE_DOWN, startScroll);
    stage.addEventListener(MouseEvent.MOUSE_UP, stopScroll);
    addEventListener (Event.ENTER_FRAME, enterHandler);
    /* !!! */ tracklistingtext.addEventListener(Event.SCROLL, scrollHandler);
}

//...

function scrollHandler(event:Event):void {
    scrollMC.y = (tracklistingtext.scrollV / tracklistingtext.maxScrollV) * bounds.height + bounds.y;
}

【讨论】:

    猜你喜欢
    • 2011-01-28
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多