Actionscript 3 TextField Scroll

时间:2014-09-09 00:39:13

标签: actionscript-3 scroll

我想允许用户滚动TextField。一切正常,除了滚动 - 它不会发生。这是代码:

format.size = fontSize;
format.font = font;
format.color = color;   
linerNotesText.defaultTextFormat = format;

linerNotesText.wordWrap = true;
linerNotesText.multiline = true;
linerNotesText.background = true;
linerNotesText.backgroundColor = backColor;

linerNotesText.text = text;

linerNotesText.x = x;
linerNotesText.y = y;
linerNotesText.width = width;
linerNotesText.height = height;

linerNotesText.scrollV = 4;  // did this to see if it was really set to 4, it was not
linerNotesText.addEventListener(MouseEvent.MOUSE_DOWN, TextMouseClickHandler);
addChild(linerNotesText);


private function TextMouseClickHandler(event:MouseEvent):void
{
    linerNotesText.addEventListener(MouseEvent.MOUSE_MOVE, TextMouseMoveHandler);
}
private function TextMouseMoveHandler(e:MouseEvent):void
{
    if (linerNotesText.mouseY > e.target.y + e.target.height / 2)
        linerNotesText.scrollV++;
    else
        linerNotesText.scrollV--;
    trace("V position = ", linerNotesText.scrollV);
} 

V位置始终为1.我注意到maxScrollV也是1.bottonScrollV是5,这是正确的 - 有5行。 scaleX,scaleY和scaleX为1,但scrollRect为null。那是问题所在吗?

1 个答案:

答案 0 :(得分:0)

事实证明这很简单,虽然我不确定为什么文档指向错误的地方。我所要做的就是改变:

if (linerNotesText.mouseY > e.target.y + e.target.height / 2)
        linerNotesText.scrollV++;
    else
        linerNotesText.scrollV--;

成:

if (linerNotesText.mouseY > e.target.y + e.target.height / 2)
        linerNotesText.y++;
    else
        linerNotesText.y--;

它有效。